15. Чем Runnable отличается от Callable?
UnknownОба интерфейса предназначены для представления задачи, которая может выполняться несколькими потоками. Задачи Runnable можно запускать с помощью класса Thread или ExecutorService , тогда как Callables можно запускать только с использованием последнего
Runnable
- появиля в Java 1.0
- Классы, реализующие интерфейс Runnable для выполнения задачи должны реализовывать метод run()
- Runnable.run()не принимает никаких параметров и не возвращает никаких значений
- Метод run() не может выбрасывать проверяемые исключения
Callable
- Появиля в Java 5.0 в составе библиотеки java.util.concurrent (улучшенная версия)
- метод call()
public interface Callable<V> {
V call() throws Exception;
}
- Callable.call() возвращает объект Future, который может содержать результат вычислений;
- Метод call() избавляет нас от необходимости на проверяемые исключения писать try-catch блоки
Предыдущий вопрос: 14. Как правильно остановить поток? Для чего нужны методы .stop(), .interrupt(), .interrupted(), .isInterrupted().
Следующий вопрос: 16. Что такое FutureTask?
Все вопросы по теме: список
Все темы: список
Вопросы/замечания/предложения/нашли ошибку: напишите мне