Sobes.tech
Junior — Middle
98

Оё метавонед шарҳи кунед, ки дар Java синфи FutureTask чист ва чӣ гуна барои вазифаҳои асинхронӣ истифода мешавад?

Ширкатҳо дар куҷо пурсиданд
СБЕРСБЕР

Ҷавоб аз 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();
}