Junior
52
questionbank

В чем отличие между интерфейсами Callable и Runnable?

Получайте ответы на вопросы в реальном времени с Sobes Copilot
Ответ от нейросети sobes.tech

Runnable - это функциональный интерфейс, представляющий задачу, которая может быть выполнена потоком. Он имеет один метод run(), который не принимает аргументов1 и не возвращает значения. Используется для выполнения фоновых операций, не требующих результата.

Callable - это параметризованный интерфейс, представляющий задачу, которая также может быть выполнена потоком. Он имеет один метод call(), который возвращает дженерик-тип <V> (произвольное значение)2 и может выбрасывать исключение (типа Exception). Подходит для задач, результат которых необходимо использовать.

Основные отличия:

ПризнакRunnableCallable
Возвращаемое значениеНетДа (тип {@code <V>})
ИсключенияНет (метод {@code run})Да (метод {@code call})
Метод{@code void run()}{@code V call() throws Exception}
Использование{@code java.lang.Runnable}{@code java.util.concurrent.Callable}

Пример использования Runnable:

java

Пример использования Callable:

java