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