Вопрос проверяет знание современных способов работы с потоками.
ExecutorService - пул потоков для выполнения задач.Future - результат асинхронной операции, позволяет:
Проверить готовность
Получить результат
Отменить выполнение
1. ExecutorService:
ExecutorService executor = Executors.newFixedThreadPool(4);
// Запуск задач
executor.execute(() -> System.out.println("Task 1"));
Future<Integer> future = executor.submit(() -> 42);
// Завершение
executor.shutdown();2. Future:
if (future.isDone()) {
int result = future.get(); // Блокирует до получения
}
// С таймаутом
try {
future.get(1, TimeUnit.SECONDS);
} catch (TimeoutException e) {
future.cancel(true);
}Альтернативы:
CompletableFuture (Java 8+)
ForkJoinPool для рекурсивных задач