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