继承Thread类的方式实现起来较为简单,但是继承它的类
就不能再继承别的类了,因此也就不能继承别的类的有用的方法了。而使用是想Runnable
接口的方式就不存在这个问题了,而且这种实现方式将线程主体和线程对象本身分离开来,
逻辑上也较为清晰,所以推荐大家更多地采用这种方式。
但是对于继承方式调用,使用start方式后实际上里面的属性是不多份的,即多个对象的线程在跑。
就不能再继承别的类了,因此也就不能继承别的类的有用的方法了。而使用是想Runnable
接口的方式就不存在这个问题了,而且这种实现方式将线程主体和线程对象本身分离开来,
逻辑上也较为清晰,所以推荐大家更多地采用这种方式。
但是对于继承方式调用,使用start方式后实际上里面的属性是不多份的,即多个对象的线程在跑。
而接口方式是同一个对象的多个线程在跑。
本文转自博客园沉睡森林@漂在北京的博客,原文链接:线程2种方式的差异,如需转载请自行联系原博主。