Future в Java представляет собой результат асинхронной операции. Он содержит методы для проверки завершенности операции, дожидания ее завершения и получения ее результата.
Основные методы:
boolean isDone(): Возвращает true, если задача завершена.V get(): Ожидает завершения задачи и возвращает ее результат. Если задача выбросила исключение, его выбрасывает и этот метод. Блокирующий вызов.V get(long timeout, TimeUnit unit): Ожидает завершения задачи в течение указанного времени и возвращает результат. При таймауте выбрасывает TimeoutException. Блокирующий вызов.boolean cancel(boolean mayInterruptIfRunning): Пытается отменить выполнение задачи. Возвращает false, если задача уже завершена, уже отменена или не может быть отменена по другим причинам.boolean isCancelled(): Возвращает true, если задача была отменена до нормального завершения.Future обычно возвращается при отправке Callable или Runnable в ExecutorService.
Пример использования:
java
java
Future является базовым интерфейсом. В Java 8 появился CompletableFuture, который предоставляет более широкие возможности для композиции и обработки асинхронных операций.