Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Справочник Java

CompletableFuture.join()

Ждёт результат `CompletableFuture`; ошибки приходят как непроверяемые исключения.

Доступно с: Java 8

Синтаксис

public T join()

Возвращаемое значение

TРезультат вычисления.

Примеры

Ошибка задачи при join():

void main() {
    var failing = CompletableFuture.supplyAsync(() -> 10 / 0);
    try {
        failing.join();
    } catch (CompletionException e) {
        IO.println(e.getCause());
    }
}

Результат:

java.lang.ArithmeticException: / by zero

Примечания

Делает то же, что get(), но не требует обработки проверяемых исключений: ошибка задачи приходит обёрнутой в CompletionException. Поэтому join() удобен в лямбдах и потоках. Вызов блокирует текущий поток — в цепочке лучше продолжать через thenApply().

См. также

  • Future.get() — Ждёт завершения задачи и возвращает её результат.
  • CompletableFuture.supplyAsync() — Запускает вычисление асинхронно и возвращает `CompletableFuture`.

Вопросы и ответы по теме

В учебнике

  • CompletableFuture — Асинхронные цепочки в Java — CompletableFuture.supplyAsync, thenApply, thenAccept, thenCombine, allOf, обработка ошибок через exceptionally и join.

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.