Отдельные методы start()
и run()
в классе Thread предоставляют два способа создания многопоточных программ. Метод start()
запускает выполнение нового потока и вызывает метод run()
. Метод start()
немедленно возвращается, и новый поток обычно продолжается до тех пор, пока не вернется метод run()
.
Метод класса Thread ’run()
ничего не делает, поэтому подклассы должны переопределить метод кодом, выполняемым во втором потоке. Если поток создается с аргументом Runnable, метод run()
потока выполняет вместо этого метод run()
объекта Runnable в новом потоке.
В зависимости от характера вашей многопоточной программы, непосредственный вызов метода Thread run()
может дать тот же результат, что и вызов через метод start()
, но в последнем случае код фактически выполняется в новом потоке.
ссылка