Sobes.tech
Назад к вопросам
Junior — Middle
66

Какое отношение существует между интерфейсами Future и Callable в языках программирования?

Компании, где спрашивали
СБЕРСБЕР

Ответ от нейросети

sobes.tech AI

В Java интерфейс Callable представляет задачу, которая возвращает результат и может выбрасывать исключения. Он похож на Runnable, но с возможностью вернуть значение.

Интерфейс Future представляет собой результат асинхронной операции, позволяя проверить, завершена ли задача, получить результат или отменить выполнение.

Связь между ними:

  • Callable используется для описания задачи, которую нужно выполнить.
  • Future возвращается при отправке Callable на выполнение (например, через ExecutorService), и позволяет получить результат выполнения Callable в будущем.

Пример:

ExecutorService executor = Executors.newSingleThreadExecutor();
Callable<Integer> task = () -> {
    Thread.sleep(1000);
    return 123;
};
Future<Integer> future = executor.submit(task);
// ...
Integer result = future.get(); // блокирует, пока задача не завершится
executor.shutdown();