news 2026/4/16 1:15:48

Thread类中run()和start()的区别

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Thread类中run()和start()的区别

在Java中, run() 和 start() 方法是Thread类的两个关键方法,它们有本质区别:

1.run()方法:

  • run()方法是线程要执行的任务代码所在的方法。
  • 直接调用run()方法,它会在当前线程中执行,而不会启动新的线程。也就是说,它就像普通的实例方法一样被调用,并没有多线程的特性。

2.start()方法

  • start()方法用于启动一个新的线程。当调用start()方法时,Java虚拟机会创建一个新的线程,然后在这个新线程中调用run()方法。

代码演示:

class MyThread extends Thread{ @Override public void run() { System.out.println("当前线程是"+Thread.currentThread().getName()); } } public class demo1 { public static void main(String[] args) { Thread t1=new MyThread(); System.out.println("直接调用run()方法"); t1.run(); System.out.println("直接调用start()方法"); t1.start(); } }

运行结果:

总结:

  • 调用start()方法会启动一个新线程,并在这个线程中执行run()方法,函数在调用后会立即返回,不需要等待线程执行完成。
  • 调用run()方法则不会启动新线程,而是在当前线程中同步执行run()方法,函数也需要在方法执行完毕后才会返回。

注意start()只能执行一次,run()可以反复多次执行。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/14 18:54:59

Python基础练习3.完全平方数

题目:一个整数,它加上100后是一个完全平方数,再加上268又是一个完全平方数,请问该数是多少?程序分析:1.在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方&#xff0…

作者头像 李华
网站建设 2026/4/12 6:30:02

TensorFlow-GPU安装与升级完整指南

TensorFlow-GPU 安装与升级实战指南 在深度学习项目中,一个稳定且高效的训练环境是成功的关键。而 TensorFlow 作为工业界最主流的机器学习框架之一,其 GPU 加速能力直接影响模型迭代速度。然而,安装 tensorflow-gpu 的过程常常令人头疼&…

作者头像 李华
网站建设 2026/4/14 10:41:40

Qwen3-VL-30B本地部署指南:高效多模态实战

Qwen3-VL-30B本地部署实战:打造你的多模态AI大脑 在医院放射科,一位医生正面对一张复杂的肺部CT影像。他上传图像并提问:“这个结节有恶性可能吗?”不到五秒,系统返回分析结果:不仅标注出1.5厘米的磨玻璃结…

作者头像 李华
网站建设 2026/4/12 15:00:59

繁忙堡垒预警系统

洪水预警 多恩伯纳 ACH繁忙堡垒预警系统情况多恩比恩人流密集的罗尔巴赫大街通向多恩比尔纳阿赫的浅滩,该河经常被洪水淹没。不仅有道路无法通行的风险,还有可能有人受伤。目的出于自然保护的原因,渡口不能被桥梁替代。因此,结构调…

作者头像 李华
网站建设 2026/4/5 23:34:12

Dify工作流集成Anything-LLM实现企业智能自动化

Dify 工作流集成 Anything-LLM:构建企业级智能自动化中枢 在一家中型 SaaS 公司的客服中心,一名支持工程师正准备回复客户:“我们新版本是否支持单点登录?”过去,他需要打开三四个文档库——产品手册、更新日志、API …

作者头像 李华
网站建设 2026/4/12 9:42:22

四本经典书籍让你掌握绩效管理的方法与实践论

推荐几本绩效管理方面的经典书籍供各位HR朋友参考。这些书不仅有绩效管理的方法与理论,更重要的是能帮助你像企业CEO一样思考,站在一定的高度之上,去系统化、体系化地思考。只有把眼界放宽才能真正做好绩效管理或考核。事实上很多人力资源经理…

作者头像 李华