Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Java: future, completablefuture, async, callback, pipeline

В чём разница между Future и CompletableFuture?

Проверяет знание API для работы с асинхронными результатами в Java.

Короткий ответ

Future (из java.util.concurrent) представляет результат асинхронной задачи, но предоставляет только методы get(), cancel() и isDone(). CompletableFuture расширяет Future, добавляя методы для составления цепочек (thenApply, thenCompose), обработки ошибок и управления выполнением (complete, completeExceptionally), что позволяет строить реактивные конвейеры.

Длинный ответ

Future:

  • Ограниченный API: блокирующий get(), нет возможности добавить коллбэк при завершении.

  • Использование: executor.submit(callable).

CompletableFuture:

  • Немедленный возврат: поддерживает неблокирующие операции.

  • Комбинирование: методы thenApply, thenAccept, thenCombine для последовательных и параллельных цепочек.

  • Обработка ошибок: exceptionally, handle.

  • Явное завершение: complete(value), completeExceptionally(ex).

Примеры:

CompletableFuture.supplyAsync(() -> fetchData())
    	.thenApply(data -> process(data))
    	.thenAccept(result -> System.out.println(result))
    	.exceptionally(ex -> { ex.printStackTrace(); return null; });

Вывод:

  • Если нужна простая асинхронная задача — Future.

  • Для комплексных асинхронных конвейеров и неблокирующего кода — CompletableFuture.

  • Аватар

    Android Guru

    Anton Gulyaev

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.

Уровень

  • Рейтинг:

    2

  • Сложность:

    5

Навыки

  • Java

    Java

Ключевые слова

#future

#completablefuture

#async

#callback

#pipeline

Подпишись на Java Developer в телеграм

  • Аватар

    Android Guru

    Anton Gulyaev

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.