复习线程----调用run()方法和调用start()方法的区别

Posted 乔不思

tags:

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

   面试官经常问到这个问题:“创建线程后  在main方法中直接调用run()和调用start()方法有什么区别?”

 

区别在于:1.直接调用run()方法 根本就没有使创建的线程执行,也就是说 当前进程中只存在一个线程main(也可以说是两个,因为还有一个jvm还有一个资源回收线程),这样调用程序的执行具有“可在现性”,也就是说每次执行的执行结果是一样的。

2,调用start方法,jvm就直接调用了run方法,然后会创建一个相对应的线程,这样执行后,进程中就存在了两个线程(main线程和创建的线程),这两个线程会交替执行,最重要的特点是:程序的执行就有“不可在现性”。

 

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

[Java]多线程复习(更新未完)

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

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

线程的start和run方法的区别

java中多线程执行时,为何调用的是start()方法而不是run()方法

线程中start()和run()的区别