6. run()和start()方法的区别

Java
334
0
0
2022-11-28
标签   Java多线程

以下代码为例:

public class ThreadDemo3 {
     static class MyThread extends Thread{
         @Override 
         public void run() {
             System.out.println("线程");
         }
     }

    public static void main(String[] args) {
        Thread t = new MyThread();
        t.run();
        //t.start();
    }
}

两种执行出来的结果都为“线程”

img

从运行结果来看,好像没什么区别,但其两种调用有本质的区别:

t.run()——这里只是一个普通的方法调用,没有创建新的线程,输出语句是在原线程中执行的 t.start()——这里是要创建一个新的线程,有新的线程来执行输出