Middle
45
questionbank

Что такое Future в Java?

Получайте ответы на вопросы в реальном времени с Sobes Copilot
Ответ от нейросети sobes.tech

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, который предоставляет более широкие возможности для композиции и обработки асинхронных операций.