启动一个线程是用start还是run方法

参考答案

启动一个线程是调用start()方法,使线程所代表的虚拟处理机处于可运行状态。这意味着它可以由JVM调度并执行,但并不意味着线程就会立即运行。

run()方法可以产生必须退出的标志来停止一个线程。

一、run方法运行结果

run()方法只是类的一个普通方法,如果直接调用run()方法,程序中依然只有主线程这一个线程,其程序执行路径还是只有一条,还是要顺序执行,还是要等待run方法体执行完毕后才可继续执行下面的代码,这样就没有达到多线程的目的。

实例:

启动一个线程是用start还是run方法

二、start方法运行结果

  • start()方法使该线程开始执行;Java 虚拟机调用该线程的 run 方法。
  • 用start方法来启动线程,真正实现了多线程运行,这时无需等待run方法体中的代码执行完毕而直接继续执行后续的代码。
  • 通过调用Thread类的 start()方法来启动一个线程,这时此线程处于就绪(可运行)状态,并没有运行,一旦得到cpu时间片,就开始执行run()方法。
  • 这里的run()方法 称为线程体,它包含了要执行的这个线程的内容,run方法运行结束,此线程随即终止。
    启动一个线程是用start还是run方法

调用start方法是启动一个线程,而调用run方法只是thread类中的一个普通方法调用,还是在主线程里执行。

以上,是Java面试题【启动一个线程是用start还是run方法】的参考答案。

 

输出,是最好的学习方法

欢迎在评论区留下你的问题、笔记或知识点补充~

—end—

👇阅读作者更多技术干货👇

阿里架构 |双11秒杀 |分布式架构 |负载均衡 |单点登录 |微服务 |云原生 |高并发 |架构师

以上

关注作者「mikechen」公众号,获取更多技术干货!

后台回复架构,即可获取《阿里架构师进阶专题全部合集》,后台回复面试即可获取《史上最全阿里Java面试题总结

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧