Sobes.tech
Back to questions
Junior — Middle
63

Какова основная роль интерфейса Future в программировании?

Answer from AI

sobes.tech AI

Интерфейс Future в Java представляет собой механизм для работы с результатом асинхронной операции. Его основная роль — предоставить способ получить результат вычисления, которое выполняется в другом потоке, и при этом не блокировать основной поток до тех пор, пока результат не будет готов.

С помощью Future можно:

  • Проверить, завершилась ли асинхронная задача (isDone())
  • Отменить выполнение задачи (cancel())
  • Получить результат, ожидая его готовности (get())

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

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

// Можно выполнять другие задачи, пока результат не готов
System.out.println("Задача запущена");

// Получение результата (блокирует, если результат ещё не готов)
Integer result = future.get();
System.out.println("Результат: " + result);

executor.shutdown();