线程的start和run方法的区别

Posted vingliu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了线程的start和run方法的区别相关的知识,希望对你有一定的参考价值。

回到这个问题,可以用源码的角度去回答,这样会让面试官对有更好的印象

------》如果直接调用run方法的话,所执行的线程是main线程。调用start方法的话,会新建一个子线程,去执行run方法里面的内容。

(这里的话,可以从源码的角度去看,当调用start方法的时候,会调用底层的start0的native方法,通过openjdk去查看的话,我们可以看到它是调用了JVM_ThreadStart的c语音方法,而ThreadStart方法里面调用了 thread_Entry的方法,而这个方法是会创建一个新线程,并且用这个线程去会调用run方法。)

 

 

技术图片

以上是关于线程的start和run方法的区别的主要内容,如果未能解决你的问题,请参考以下文章

Java多线程系列-start()和run方法的区别

start()方法和run()方法有什么区别?

Java线程中run和start方法的区别

java 多线程系列基础篇之start()和run()的区别

Java_多线程并发编程基础篇—Thread类中start()和run()方法的区别

线程的start和run方法的区别