Junior — Middle
101
Kun je uitleggen wat de klasse FutureTask in Java is en hoe deze wordt gebruikt voor asynchrone taken?
Bedrijven waar gevraagd werd
Antwoord van 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();
}