Back to questions
СБЕР
Junior — Middle
54
Объясните концепцию объекта Future и его использование в программировании
Companies where asked
Answer from AI
sobes.tech AI
Объект Future в Java представляет собой результат асинхронной операции, который может быть получен в будущем. Он позволяет запускать задачи в отдельном потоке и получать результат позже, не блокируя основной поток выполнения.
Основные моменты:
Futureпредоставляет методы для проверки завершения задачи (isDone()), отмены (cancel()), и получения результата (get()).- Метод
get()блокирует текущий поток до тех пор, пока задача не завершится и результат не станет доступен.
Пример использования с ExecutorService:
import java.util.concurrent.*;
ExecutorService executor = Executors.newSingleThreadExecutor();
Callable<String> task = () -> {
Thread.sleep(1000); // имитация долгой операции
return "Результат";
};
Future<String> future = executor.submit(task);
// Можно выполнять другие действия здесь
try {
String result = future.get(); // блокируется, пока задача не завершится
System.out.println(result);
} catch (InterruptedException | ExecutionException e) {
e.printStackTrace();
}
executor.shutdown();
Таким образом, Future помогает организовать асинхронное выполнение задач и управлять их результатами.