Sobes.tech
Junior — Middle
100

Можете ли објаснити шта је класа FutureTask у Јави и како се користи за асинхроне задатке?

Компаније где су питане
СБЕРСБЕР

Одговор од АИ

sobes.tech АИ

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