Чем Runnable отличается от Callable?

Ответ

Runnable — run() возвращает void, не может бросать checked-исключения. Подходит для «просто запусти». Callable<V> — call() возвращает V, может бросать Exception. Используется через ExecutorService.submit() и Future<V>.

Разбор: Ключевое отличие: Runnable.run() возвращает void и не объявляет checked-исключений, а Callable<V>.call() возвращает V и может бросать Exception; результат Callable получают через Future от ExecutorService.submit(). Распространённое заблуждение — приписать возврат значения Runnable или считать, что Callable «параллельнее»: параллельность даёт исполнитель, а не сам интерфейс.

Хочешь так же по своей компании — с вопросами по грейдам и задачами? Закажи гайд или забери свежее в Telegram.

Заказать гайд Пройти тест
новые гайды и свежие вопросы с собесов — первыми в Telegram Смотреть гайды Подписаться