Back to questions
СБЕР
Junior — Middle
54
Можете объяснить, что такое класс FutureTask в Java и как он используется для асинхронных задач?
Companies where asked
Answer from AI
sobes.tech AI
Класс FutureTask в Java представляет собой реализацию интерфейса Future и Runnable, которая позволяет выполнять асинхронные задачи и получать результат их выполнения в будущем.
Основные особенности:
- Позволяет запускать задачу в отдельном потоке.
- Позволяет получить результат выполнения через метод
get(), который блокируется до завершения задачи. - Поддерживает отмену выполнения.
Пример использования:
import java.util.concurrent.*;
Callable<Integer> callable = () -> {
// Долгая операция
Thread.sleep(1000);
return 42;
};
FutureTask<Integer> futureTask = new FutureTask<>(callable);
Thread thread = new Thread(futureTask);
thread.start();
// Можно выполнять другие операции
try {
Integer result = futureTask.get(); // Ожидает завершения и получает результат
System.out.println("Результат: " + result);
} catch (InterruptedException | ExecutionException e) {
e.printStackTrace();
}