Подражать поведению thenAllOf с CompletableFuture - PullRequest
0 голосов
/ 25 января 2019

У меня есть три 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);
}

Что я пытаюсь достичь, так это когда метод вызывается:

  1. Все из futures1 для запуска (можно запустить все из них одновременно), присоединиться к основному потоку,
  2. someMethod возврат,
  3. future2 для запуска
  4. Все futures3 для запуска после завершения future2 (опять же, можно запустить все из них одновременно, просто нужно future2 для завершения).

Так что, в принципе, если бы у меня был thenAllOf метод CompletableFuture, это решило бы мою проблему. Как мне подражать:

public Object someMethod(){

    CompletableFuture.allOf(futureArray1).join();
    CompletableFuture.runAsync() -> // Do something for futureArray2).thenAllOf(futureArray2);
}
...