Java 8 - Rufen Sie asynchrone Methoden parallel auf und kombinieren Sie ihre Ergebnisse

8

Ich bin neu in den Java 8 Parallelitätsfunktionen wie CompletableFuture und ich hoffe, Sie können helfen, mit dem folgenden Anwendungsfall zu beginnen.

Es gibt einen Service namens TimeConsumingServices , der zeitraubende Operationen bietet, die ich parallel ausführen möchte, da sie alle unabhängig sind.

%Vor%

Bisher habe ich das folgende Beispiel implementiert und es geschafft, alle drei Service-Methoden parallel aufzurufen.

%Vor%

Gibt es eine Möglichkeit, die Rückgabewerte jedes Serviceaufrufs zu sammeln und die Methode byte[]‘ convert(String, String, String) ?

aufzurufen?     
saw303 28.02.2017, 09:01
quelle

3 Antworten

8

Um das Ergebnis zu kombinieren, nachdem Sie alle zurückgegeben haben, können Sie so etwas tun

%Vor%

Dies wird alle Ihre Zukunft laufen lassen, warten auf sie alle zu vervollständigen, dann, sobald sie alle fertig sind, rufen Sie Ihre convert Methode, die Sie erwähnen.

    
Ash 28.02.2017, 09:24
quelle
2

Nach dem Beitritt können Sie einfach get() Werte von future1 like:

%Vor%

und so weiter

    
user2377971 28.02.2017 09:12
quelle
0

Sie können sie mit der Methode thenCombine() kombinieren, wenn nur 3 Futures abgeschlossen werden müssen:

%Vor%     
MBec 28.02.2017 09:31
quelle

Tags und Links