Sobes.tech
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();
}