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

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