CompletableFuture
— это класс в Java 8+, реализующий интерфейсы Future
и CompletionStage
. Он представляет собой асинхронное вычисление, которое может быть завершено (или выдаст ошибку) в какой-то момент в будущем и над результатом которого можно выполнять последующие действия декларативно, без блокировки основного потока.
Основные возможности:
CompletableFuture
, создавая цепочки зависимых действий.get()
).Ключевые методы:
supplyAsync(Supplier<T> supplier)
: Запускает Supplier асинхронно и возвращает CompletableFuture
с его результатом.runAsync(Runnable runnable)
: Запускает Runnable асинхронно и возвращает CompletableFuture<Void>
.completedFuture(T value)
: Создает уже завершенный CompletableFuture
с заданным значением.thenApply(Function<T, U> fn)
: Применяет функцию к результату, когда future завершается.thenAccept(Consumer<T> action)
: Выполняет действие над результатом, когда future завершается.thenRun(Runnable action)
: Выполняет действие, когда future завершается, игнорируя результат.thenCompose(Function<T, CompletionStage<U>> fn)
: Позволяет строить цепочки, где результат одного future используется для создания другого.CompletableFuture
— это класс в Java 8+, реализующий интерфейсы Future
и CompletionStage
. Он представляет собой асинхронное вычисление, которое может быть завершено (или выдаст ошибку) в какой-то момент в будущем и над результатом которого можно выполнять последующие действия декларативно, без блокировки основного потока.
Основные возможности:
CompletableFuture
, создавая цепочки зависимых действий.get()
).Ключевые методы:
supplyAsync(Supplier<T> supplier)
: Запускает Supplier асинхронно и возвращает CompletableFuture
с его результатом.runAsync(Runnable runnable)
: Запускает Runnable асинхронно и возвращает CompletableFuture<Void>
.completedFuture(T value)
: Создает уже завершенный CompletableFuture
с заданным значением.thenApply(Function<T, U> fn)
: Применяет функцию к результату, когда future завершается.thenAccept(Consumer<T> action)
: Выполняет действие над результатом, когда future завершается.thenRun(Runnable action)
: Выполняет действие, когда future завершается, игнорируя результат.thenCompose(Function<T, CompletionStage<U>> fn)
: Позволяет строить цепочки, где результат одного future используется для создания другого.Зарегистрируйтесь или войдите, чтобы получить доступ к полным ответам на все вопросы из банка вопросов.