本想转帖个详细的介绍,后来觉得没必要,我直接说吧~
主要两个区别:
一是 共享资源方面: Runnable可以实现共享资源,比如说实现Runnable的各个线程可以分享一个变量,而继承自Thread的线程则需要自己实现,所以多线程应用中选Runnable的较多;
二是接口和抽象类的区别,众所周知java中是没有严格意义上的多重继承,但其可以继承多个接口,Runnable是接口,Thread是抽象类,这个不用我再罗嗦了吧~
本想转帖个详细的介绍,后来觉得没必要,我直接说吧~
主要两个区别:
一是 共享资源方面: Runnable可以实现共享资源,比如说实现Runnable的各个线程可以分享一个变量,而继承自Thread的线程则需要自己实现,所以多线程应用中选Runnable的较多;
二是接口和抽象类的区别,众所周知java中是没有严格意义上的多重继承,但其可以继承多个接口,Runnable是接口,Thread是抽象类,这个不用我再罗嗦了吧~