Sobes.tech
Junior — Middle

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

sobes.tech AI

Отговор от 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();