Sobes.tech
Junior — Middle
88

Können Sie erklären, was die Klasse FutureTask in Java ist und wie sie für asynchrone Aufgaben verwendet wird?

Unternehmen wurden gefragt
СБЕРСБЕР

Antwort von AI

sobes.tech KI

Класс 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();
}