start()

它的作用是启动一个新线程,新线程会执行相应的run()方法。start()不能被重复调用。


run()  

run()就和普通的成员方法一样,可以被重复调用。单独调用run()的话,会在当前线程中执行run(),而并不会启动新线程!(默认是主线程)


demo

JAVA系列:线程的Run和Start方法区别_程序块


当前线程:main Thread-0

当前线程:Thread-0 Thread-0


如果换成(2)的程序块,结果为:

当前线程:main Thread-0

当前线程:main Thread-0