Встречается на собеседованиях • сегодня

В чем разница между Future, FutureTask и CompletableFuture

Future - интерфейс для асинхронных вычислений, предоставляющий методы для проверки статуса (isDone()), получения результата (get()) и отмены (cancel()). Основной недостаток - отсутствие callback-механизма.

FutureTask - конкретная реализация Future + Runnable, позволяющая выполнять задачу в отдельном потоке. Можно передать Callable или Runnable в конструктор.

CompletableFuture - расширенная версия Future (Java 8+), поддерживающая цепочки вызовов и комбинирование асинхронных операций через методы thenApply(), thenAccept(), thenCombine() и др. Позволяет явно завершать future (complete()).

Пример:

java
CompletableFuture.supplyAsync(() -> "Hello")
    .thenApply(s -> s + " World")
    .thenAccept(System.out::println);

Ключевые отличия:

  • CompletableFuture поддерживает неблокирующие callback-и
  • Позволяет комбинировать несколько future
  • Имеет богатый API для асинхронной обработки
  • Поддерживает ручное завершение
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы