当前位置: 首页 > news >正文

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()可以反复多次执行。

http://www.cnnetsun.cn/news/87258.html

相关文章:

  • GPU算力平台部署Linly-Talker数字人教程
  • 全球USB设备厂商ID与产品型号大全
  • Qwen3-14B如何避免输出截断?关键在max_new_tokens设置
  • 16倍压缩+双专家架构重塑视频生成效率
  • 主机监控指标解析—内存篇
  • Keepalived详解:安装与高可用集群配置
  • LangChain与AutoGPT:AI工作流引擎深度对比
  • Excalidraw代码贡献指南:如何参与开源社区开发
  • LangChain-Chatchat本地部署与配置指南
  • shared_ptr 快照用于安全地并发读取,无需拷贝
  • 官方适配完的命令行ruby在鸿蒙PC上的使用方法
  • LobeChat能否接收语音指令?全双工对话体验
  • LangFlow快速入门:可视化构建AI应用
  • Langflow本地部署:隔离环境安装指南
  • 云端算力的进化:云服务器架构演进的三重范式变革
  • 解决facefusion报错No source face detected
  • PaddleOCR中英文文字识别实战与优化指南
  • LobeChat剪贴板交互优化:复制粘贴操作更加流畅自然
  • YOLOv5详解:高效目标检测模型实战指南
  • Windows下PaddleOCR GPU版环境搭建指南
  • “开盒神器”威胁下的自保手册:七招应对超级 Agent 的实时入侵
  • EBS后台查询人员职责信息
  • Qwen3-8B-AWQ性能优化与最佳实践
  • LLaMA-Factory 微调 DeepSeek-R1 模型实战指南
  • Langflow自定义组件开发与界面集成详解
  • LobeChat能否协助撰写简历?求职者福音来了
  • 使用Miniconda创建Python 3.8环境的完整步骤
  • 搭建Ollama并运行qwen,简单RAG实现
  • LobeChat能否显示用量统计?透明化消费展示
  • 解决langchain-chatchat缺少__init__.py问题