Sobes.tech
Назад к вопросам
Junior — Middle
66

Какова роль класса Future в Java и зачем он предназначен?

Компании, где спрашивали
ООО Антара

Ответ от нейросети

sobes.tech AI

Класс Future в Java представляет собой результат асинхронной операции, которая может завершиться в будущем. Он предназначен для:

  • Получения результата вычисления, которое выполняется в другом потоке.
  • Проверки, завершена ли операция (isDone()), или была ли отменена (isCancelled()).
  • Возможности отменить выполнение задачи (cancel()).

Используется вместе с ExecutorService для управления асинхронными задачами. Например, можно отправить задачу на выполнение и продолжить работу, а потом получить результат, когда он будет готов.

Пример:

ExecutorService executor = Executors.newSingleThreadExecutor();
Future<Integer> future = executor.submit(() -> {
    Thread.sleep(1000); // имитация долгой операции
    return 42;
});

// Можно выполнять другие действия здесь

try {
    Integer result = future.get(); // блокируется, пока результат не будет готов
    System.out.println("Результат: " + result);
} catch (InterruptedException | ExecutionException e) {
    e.printStackTrace();
}
executor.shutdown();