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();