Sobes.tech
Junior — Middle

Y a-t-il des classes supplémentaires en Java qui implémentent l'interface Future, et comment s'appellent-elles?

sobes.tech IA

Réponse de l'IA

Да, в 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