start()
run()在新线程中运行代码。
run()直接调用不会
run()在新线程中执行,而是
run()从中调用该线程。
如果
run()直接调用,则没有线程。
run()直接调用将阻塞,直到
run()完成任何代码。
start()创建一个新线程,并且由于其中的代码
run正在该新线程中运行,因此
start()将立即返回。(嗯,从技术上讲,不是立即开始,而是在完成之后创建新线程并将其启动。)
另外,您应该实现可运行的,而不是扩展thread。

start()
run()在新线程中运行代码。
run()直接调用不会
run()在新线程中执行,而是
run()从中调用该线程。
如果
run()直接调用,则没有线程。
run()直接调用将阻塞,直到
run()完成任何代码。
start()创建一个新线程,并且由于其中的代码
run正在该新线程中运行,因此
start()将立即返回。(嗯,从技术上讲,不是立即开始,而是在完成之后创建新线程并将其启动。)
另外,您应该实现可运行的,而不是扩展thread。