Я играл с CompletionStage/CompletableFuture в Java 8, чтобы выполнить асинхронную обработку, которая работает достаточно хорошо. Однако иногда мне нужен этап для выполнения асинхронной обработки итератора/потока элементов, и, похоже, не существует способа сделать это.Можно ли использовать Java 8 Streams API для асинхронной обработки?
В частности, Stream.forEach() имеет семантику, которая после вызова всех элементов была обработана. Я хотел бы то же самое, но с CompletionStage вместо, например .:
CompletionStage<Void> done = stream.forEach(...);
done.thenRun(...);
Если поток опирается на асинхронный результат потоковой это будет намного лучше, чем ждать, чтобы быть полным в самом коде выше.
Возможно ли построить это с помощью Java API Java как-то? Обходные?
Привет! Я обновил свой ответ. Если это вас удовлетворит, проголосуйте, я пытаюсь заработать больше репутации;) –
@ Rickard Может быть, слишком поздно :), но я нашел что-то, что вы хотите, если я правильно вас пойму. http://www.reactive-streams.org/. https://github.com/reactor/reactor –