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

В чем разница между 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 с результатом ```
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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