Sobes.tech
Back to questions
Middle
346

Для чего предназначены классы Future и CompletableFuture в Java?

Answer from AI

sobes.tech AI

Классы Future и CompletableFuture в Java предназначены для работы с результатами асинхронных вычислений.

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

  • CompletableFuture расширяет возможности Future, предоставляя удобный API для композиции асинхронных операций, обработки результатов без блокировок, цепочек вызовов и обработки исключений. Он поддерживает функциональные методы, такие как thenApply, thenAccept, thenCompose и другие, что облегчает построение сложных асинхронных сценариев.

Пример использования CompletableFuture:

CompletableFuture.supplyAsync(() -> {
    // Долгая операция
    return "Результат";
}).thenApply(result -> {
    // Обработка результата
    return result.toUpperCase();
}).thenAccept(finalResult -> {
    System.out.println(finalResult);
});