复习线程----调用run()方法和调用start()方法的区别
Posted 乔不思
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了复习线程----调用run()方法和调用start()方法的区别相关的知识,希望对你有一定的参考价值。
面试官经常问到这个问题:“创建线程后 在main方法中直接调用run()和调用start()方法有什么区别?”
区别在于:1.直接调用run()方法 根本就没有使创建的线程执行,也就是说 当前进程中只存在一个线程main(也可以说是两个,因为还有一个jvm还有一个资源回收线程),这样调用程序的执行具有“可在现性”,也就是说每次执行的执行结果是一样的。
2,调用start方法,jvm就直接调用了run方法,然后会创建一个相对应的线程,这样执行后,进程中就存在了两个线程(main线程和创建的线程),这两个线程会交替执行,最重要的特点是:程序的执行就有“不可在现性”。
以上是关于复习线程----调用run()方法和调用start()方法的区别的主要内容,如果未能解决你的问题,请参考以下文章