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

以下代码为例:


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();
    }
}

两种执行出来的结果都为“线程”
在这里插入图片描述

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

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

猜你喜欢

转载自blog.csdn.net/qq_45136189/article/details/114156925