15. Чем Runnable отличается от Callable?

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?

Все вопросы по теме: список

Все темы: список

Вопросы/замечания/предложения/нашли ошибку: напишите мне


Report Page