Встречается на собеседованиях • сегодня

В чем разница между интерфейсами Runnable и Callable

Оба интерфейса используются для многопоточности, но имеют ключевые различия: 1. **Возвращаемое значение** - `Runnable.run()` возвращает `void` - `Callable.call()` возвращает результат типа `V` (можно указать любой тип) 2. **Исключения** - `Runnable` не может бросать проверяемые исключения - `Callable` может бросать `Exception` 3. **Использование** - `Runnable` передается в `Thread` или `ExecutorService.execute()` - `Callable` передается только в `ExecutorService.submit()` Пример: ```java // Runnable Runnable r = () -> System.out.println("Running"); new Thread(r).start(); // Callable Callable c = () -> "Result"; Future future = Executors.newSingleThreadExecutor().submit(c); String result = future.get(); // блокирует поток до завершения ```
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы