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

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