参考答案
启动一个线程是调用start()方法,使线程所代表的虚拟处理机处于可运行状态。这意味着它可以由JVM调度并执行,但并不意味着线程就会立即运行。
run()方法可以产生必须退出的标志来停止一个线程。
一、run方法运行结果
run()方法只是类的一个普通方法,如果直接调用run()方法,程序中依然只有主线程这一个线程,其程序执行路径还是只有一条,还是要顺序执行,还是要等待run方法体执行完毕后才可继续执行下面的代码,这样就没有达到多线程的目的。
实例:
二、start方法运行结果
- start()方法使该线程开始执行;Java 虚拟机调用该线程的 run 方法。
- 用start方法来启动线程,真正实现了多线程运行,这时无需等待run方法体中的代码执行完毕而直接继续执行后续的代码。
- 通过调用Thread类的 start()方法来启动一个线程,这时此线程处于就绪(可运行)状态,并没有运行,一旦得到cpu时间片,就开始执行run()方法。
- 这里的run()方法 称为线程体,它包含了要执行的这个线程的内容,run方法运行结束,此线程随即终止。
调用start方法是启动一个线程,而调用run方法只是thread类中的一个普通方法调用,还是在主线程里执行。
以上,是Java面试题【启动一个线程是用start还是run方法】的参考答案。
输出,是最好的学习方法。
欢迎在评论区留下你的问题、笔记或知识点补充~
—end—
👇阅读作者更多技术干货👇
阿里架构 |双11秒杀 |分布式架构 |负载均衡 |单点登录 |微服务 |云原生 |高并发 |架构师
以上
关注作者「mikechen」公众号,获取更多技术干货!
后台回复【架构】,即可获取《阿里架构师进阶专题全部合集》,后台回复【面试】即可获取《史上最全阿里Java面试题总结》