Ich habe mit CompletionStage/CompletableFuture in Java 8 gespielt, um eine asynchrone Verarbeitung durchzuführen, was ziemlich gut funktioniert. Manchmal möchte ich jedoch, dass eine Stufe eine asynchrone Verarbeitung eines Iterators/Stroms von Elementen durchführt, und es scheint keine Möglichkeit dafür zu geben.Ist es möglich, Java 8 Streams API für die asynchrone Verarbeitung zu verwenden?
Insbesondere hat Stream.forEach() die Semantik, dass nach dem Aufruf alle Elemente verarbeitet wurden. Ich würde das gleiche will, aber mit einem CompletionStag statt, z.B .:
CompletionStage<Void> done = stream.forEach(...);
done.thenRun(...);
Wenn der Strom durch ein asynchrones Streaming Ergebnis gesichert wird dies wäre viel besser, als warten, dass es mich in dem obigen Code auf Vollständigkeit.
Ist es irgendwie möglich, dies mit der aktuellen Java 8 API zu konstruieren? Problemumgehungen?
Hallo! Ich habe meine Antwort aktualisiert. Wenn es dich zufrieden stellen würde, stimme bitte ab Ich versuche, mehr Ansehen zu erlangen;) –
@Rickard Mag es zu spät sein :) aber ich habe etwas gefunden was du willst wenn ich dich richtig verstehe. http://www.reactive-streams.org/. https://github.com/reactor/reactor –