TGViewer
Java Learning Java Learning @java_per_month · 16.6K subscribers
Post #3605 2.96K
❓ Вопрос на собеседовании

Как работает CompletableFuture в Java, чем он отличается от Future, и как использовать метод thenCombine() для выполнения параллельных задач?

Ответ ⬇️
CompletableFuture — это расширение Future, позволяющее выполнять асинхронные задачи и комбинировать их без необходимости вручную управлять потоками. В отличие от Future, он предоставляет богатый API для обработки результатов, включая цепочку методов и возможность комбинирования нескольких задач. Метод thenCombine() используется для объединения результатов двух асинхронных задач, выполняемых параллельно, в одну итоговую операцию.

Пример использования ⚙️
import java.util.concurrent.CompletableFuture;

public class Main {
public static void main(String[] args) {
// Первая асинхронная задача
CompletableFuture<Integer> task1 = CompletableFuture.supplyAsync(() -> {
try {
Thread.sleep(1000); // Эмуляция задержки
} catch (InterruptedException e) {
e.printStackTrace();
}
return 10;
});

// Вторая асинхронная задача
CompletableFuture<Integer> task2 = CompletableFuture.supplyAsync(() -> 20);

// Комбинируем результаты двух задач
CompletableFuture<Integer> combined = task1.thenCombine(task2, Integer::sum);

// Получаем и выводим результат
combined.thenAccept(result -> System.out.println("Сумма: " + result));

// Ждем завершения всех задач (только для примера)
combined.join();
}
}

// Результат выполнения:
// Сумма: 30


Java Learning 👩‍💻
  • 👍 10
More from @java_per_month
  1. Sep 14, 2026❓ Вопрос на собеседовании Что такое ForkJoinPool в Java, как он работает, и как его исполь…
  2. Sep 4, 2026⚙️ List.subList() В Java метод subList() позволяет создать представление части списка. Это…
  3. Sep 1, 2026🔴 Завтра тестовое собеседование с Java-разработчиком 2 сентября(уже завтра!) в 19:00 по м…
  4. Aug 17, 2026➡️ Quarkus — быстрый и лёгкий фреймворк для Java-приложений Quarkus — оптимизированный фре…
  5. Aug 13, 2026⚙️ Collectors.joining() В Java метод Collectors.joining() из пакета java.util.stream позво…
  6. Aug 4, 2026🔴 Завтра тестовое собеседование с Java-разработчиком 5 августа(уже завтра!) в 19:00 по мс…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →