Назад к вопросам
Junior — Middle
65
Могут ли быть в Java дополнительные классы, реализующие интерфейс Future, и как они называются?
Ответ от нейросети
sobes.tech AI
Да, в Java помимо стандартного интерфейса Future существуют дополнительные классы и интерфейсы, которые реализуют или расширяют функциональность Future.
Основные из них:
-
FutureTask — класс, реализующий интерфейс
RunnableFuture, который расширяетFutureиRunnable. Позволяет запускать асинхронные задачи и получать результат. -
CompletableFuture — расширяет
Futureи предоставляет более мощный API для асинхронного программирования, включая цепочки вызовов, обработку исключений и комбинирование нескольких задач. -
RunnableFuture — интерфейс, объединяющий
RunnableиFuture, используется для задач, которые можно запускать и получать результат.
Пример использования FutureTask:
Callable<Integer> callable = () -> {
Thread.sleep(1000);
return 123;
};
FutureTask<Integer> futureTask = new FutureTask<>(callable);
new Thread(futureTask).start();
Integer result = futureTask.get(); // блокируется до получения результата
System.out.println(result); // 123