生活生产服务其它并发编程

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

线程的 run()和 start()有什么区别?

参与22

4同行回答

nkj827nkj827项目经理长春长信华天
每个线程都有要执行的任务。线程的任务处理逻辑可以在Tread类的run实例方法中直接实现或通过该方法进行调用,因此 run()相当于线程的任务处理逻辑的入口方法,它由Java虚拟机在运行相应线程时直接调用,而不是由应用代码进行调用。而start()的 作用 是启动相应的线程。启动一...显示全部

每个线程都有要执行的任务。线程的任务处理逻辑可以在Tread类的run实例方法中直接实现或通过该方法进行调用,因此 run()相当于线程的任务处理逻辑的入口方法,它由Java虚拟机在运行相应线程时直接调用,而不是由应用代码进行调用。
而start()的 作用 是启动相应的线程。启动一个线程实际是请求Java虚拟机运行相应的线程,而这个线程何时能够运行是由线程调度器决定的。 start()调用结束并不表示相应线程已经开始运行,这个线程可能稍后运行,也可能永远也不会运行。

收起
系统集成 · 2020-04-30
浏览848

提问者

wfang_2020
测试工程师DSL
擅长领域: 系统运维云计算容器

相关问题

问题状态

  • 发布时间:2020-04-30
  • 关注会员:5 人
  • 问题浏览:1794
  • 最近回答:2020-04-30
  • X社区推广