java本身的单继承性限制了thread类的使用,比如说一个Student既继承了person,又想去继承Thread,就没有办法了,只有使用runnable,个人推荐runnable,
因为它能使进程和你进程中想要执行的任务分开,降低了他们之间的耦合性。
run()和start()之间的区别:
当你调用run()方法时候,并没有去启动一个线程,仅仅是调用了其中的一个方法。与多线程无关。
当使用start()的时候,它去启动线程,使其从新建态到了就绪态,具有了强占Cpu的权利,当执行线程的时候,就会调用run()方法。
这是jdk中start()的解释,
public void start()
使该线程开始执行;Java 虚拟机调用该线程的 run 方法。
结果是两个线程并发地运行;当前线程(从调用返回给 start 方法)和另一个线程(执行其 run 方法)。
希望多看看JDK。 |