Назад к вопросам
СБЕР
Северсталь-Ифоком
Junior — Middle
89
Какие отличия между интерфейсами Runnable и Callable в Java?
Компании, где спрашивали
Y_lab development
Ответ от нейросети
sobes.tech AI
Интерфейсы Runnable и Callable в Java используются для выполнения задач в отдельных потоках, но имеют ключевые отличия:
-
Runnable:
- Метод
run()не возвращает результат и не может выбрасывать проверяемые исключения. - Используется, когда задача не требует возвращать значение.
- Пример:
Runnable task = () -> System.out.println("Выполнение задачи"); new Thread(task).start();
- Метод
-
Callable<V>:
- Метод
call()возвращает результат типаVи может выбрасывать исключения. - Используется, когда нужно получить результат выполнения задачи.
- Обычно применяется с
ExecutorServiceиFuture. - Пример:
Callable<Integer> task = () -> { // вычисления return 123; }; ExecutorService executor = Executors.newSingleThreadExecutor(); Future<Integer> future = executor.submit(task); Integer result = future.get(); executor.shutdown();
- Метод
Таким образом, Callable расширяет возможности Runnable, позволяя возвращать результат и обрабатывать исключения.