Runnable
- интерфейс задачи с методом run()
.
Thread
- исполнитель задачи в новом потоке.
Сам Thread
так же реализует интерфейс Runnable
и запускает свою собственную задачу, определенную в его методе run()
, в новом потоке, по-умолчанию его задачей является запустить переданную ему другую задачу, например через конструктор new Thread(Runnable)
.
Самостоятельно метод run()
у объекта Thread никогда не вызывается, так как суть объекта Thread, это создать новый поток, а затем jvm сама начнет выполнение задачи вызовом метода run()
уже в новом потоке.