继承Thread类:
- 子类继承Thread类具备多线程能力
- 启动线程:子类对象. start()
- 不建议使用:避免OOP单继承局限性
实现Runnable接口个
- 实现接口Runnable具有多线程能力
- 启动线程:传入目标对象+ Thread对象.start()
- 推荐使用:避免单继承局限性,灵活方便,方便同一个对象被多个线程使用
比较:
开发中:优先选择实现Runnable接口的方式
原因:
- 实现的方式没有类的单继承性的局限性
- 实现的方式更适合来处理多个线程的共享数据
联系:
- Thread类也实现了Runnable接口
相同点:
- 都需要重新run()方法