У меня есть три CompletableFuture
с следующим образом:
public Object someMethod(){
CompletableFuture future1 = CompletableFuture.allOf(futureArray1).exceptionally(this::handleException);
CompletableFuture future2 = CompletableFuture.runAsync(() ->
// Here I do something needed for futureArray2 to run );
CompletableFuture future3 = CompletableFuture.allOf(futureArray2).exceptionally(this::handleException);
}
Что я пытаюсь достичь, так это когда метод вызывается:
- Все из
futures1
для запуска (можно запустить все из них одновременно), присоединиться к основному потоку,
someMethod
возврат,
future2
для запуска
- Все
futures3
для запуска после завершения future2
(опять же, можно запустить все из них одновременно, просто нужно future2
для завершения).
Так что, в принципе, если бы у меня был thenAllOf
метод CompletableFuture
, это решило бы мою проблему. Как мне подражать:
public Object someMethod(){
CompletableFuture.allOf(futureArray1).join();
CompletableFuture.runAsync() -> // Do something for futureArray2).thenAllOf(futureArray2);
}