Sobes.tech
Назад к вопросам
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