[java] 线程的创建

通过继承Thread类创建线程

class MyThread extends Thread{
  public void run(){
    for(int i = 0; i < 100; i ++){
      System.out.print(" " + i);
    }
  }
}
  • 使用匿名类可简写为
    new Thread(){
    public void run(){
      for(int i = 0; i < 100; i ++){
        System.out.print(" " + i);
      }
    }
    }.start();
    

通过向Thread()构造方法传递Runnable对象来创建线程

class MyTask implements Runnable{
  public void run(){...}
}
Thread thread = new Thread(mytask);
thread.start();
  • 用Lambda表达式可简写为
    new Thread(()->{...}).start();

重要的理解

通过重写Thread类的run()方法创建的是一个Thread子类,它的实例可以直接使用start()方法。而通过实现Runnable接口创建的是一个Runnable子类,它的实例需要作为参数传给一个Thread对象,最终通过这个Thread对象的start()方法来启动线程。

Written on December 10, 2022