Встречается на собеседованиях • сегодня
В чем разница между интерфейсами 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(); // блокирует поток до завершения
```

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы