小结

  • 继承Thread类

  • 子类继承Thread类具备多线程能力

  • 启动线程:子类对象.start()

  • 不建议使用:避免oop单继承局限性

 

  • 实现Runnable接口

  • 实现接口Runnable具有多线程能力

  • 启动线程:传入目标对象+Thread对象.start()

  • 推荐使用:避免单继承局限性,灵活方便,方便同一个对象被多个线程使用

package Thread;
//创建线程方式二:实现runnable接口,重写run方法,执行线程需要丢入runnable接口实现类,调用start方法
public class TestThread03 implements Runnable {
  @Override
  public void run() {
      //run方法线程体
      for (int i = 0; i < 20; i++) {
          System.out.println("我在学习"+i);

      }
  }

  public static void main(String[] args) {
      //创建一个runnable接口的实现类对象
      TestThread03 testThread03 = new TestThread03();
      //创建线程对象,通过线程对象来开启我们的线程,代理
//       Thread thread = new Thread(testThread03);
////       thread.start();
      new Thread(testThread03).start();


      for (int i = 0; i < 20; i++) {
          System.out.println("我在学习多线程"+i);
      }
  }
}