hbf548

多看源码多读书

0%

比较创建线程的两种方式

继承Thread类:

  • 子类继承Thread类具备多线程能力
  • 启动线程:子类对象. start()
  • 不建议使用:避免OOP单继承局限性

实现Runnable接口个

  • 实现接口Runnable具有多线程能力
  • 启动线程:传入目标对象+ Thread对象.start()
  • 推荐使用:避免单继承局限性,灵活方便,方便同一个对象被多个线程使用

比较:
开发中:优先选择实现Runnable接口的方式
原因:

  1. 实现的方式没有类的单继承性的局限性
  2. 实现的方式更适合来处理多个线程的共享数据

联系:

  • Thread类也实现了Runnable接口

相同点:

  • 都需要重新run()方法