- Интерфейс
Runnable появился в Java 1.0, а интерфейс Callable был введен в Java 5.0 в составе библиотеки java.util.concurrent;
- Классы, реализующие интерфейс
Runnable для выполнения задачи должны реализовывать метод run(). Классы, реализующие интерфейс Callable — метод call();
- Метод
Runnable.run() не возвращает никакого значения, Callable.call() возвращает объект Future, который может содержать результат вычислений;
- Метод
run() не может выбрасывать проверяемые исключения, в то время как метод call() может.