为了账号安全,请及时绑定邮箱和手机立即绑定

什么时候调用Java的thread.run()而不是thread.start()?

什么时候调用Java的thread.run()而不是thread.start()?

jeck猫 2019-10-08 15:21:51
什么时候用Java thread.run()代替thread.start()?
查看完整描述

4 回答

?
Qyouu

TA贡献1786条经验 获得超11个赞

您可能要在特定于功能且与并发无关的特定单元测试中调用run()。


查看完整回答
反对 回复 2019-10-08
?
慕慕森

TA贡献1856条经验 获得超17个赞

决不。就像正常方法调用一样,直接调用run()只是同步(在同一线程中)执行代码。


查看完整回答
反对 回复 2019-10-08
?
慕桂英3389331

TA贡献2036条经验 获得超8个赞

取自代码样式Java线程常见问题解答:


问:线程的start()和run()方法有什么区别?


答:Thread类中单独的start()和run()方法提供了两种创建线程程序的方法。start()方法开始执行新线程并调用run()方法。start()方法立即返回,并且新线程通常会继续运行,直到run()方法返回。


Thread类的run()方法不执行任何操作,因此子类应使用在第二个线程中执行的代码覆盖该方法。如果使用Runnable参数实例化Thread,则该线程的run()方法将在新线程中执行Runnable对象的run()方法。


根据线程程序的性质,直接调用Thread run()方法可以提供与通过start()方法进行调用相同的输出,但是在后一种情况下,代码实际上是在新线程中执行的。


查看完整回答
反对 回复 2019-10-08
  • 4 回答
  • 0 关注
  • 751 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信