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

启动线程方法 start ()和 run ()有什么区别

在Java中,线程可以通过调用start()方法或者直接调用run()方法来执行。这两种方式有着重要的区别:

  1. start() 方法:
  • 当你调用线程的start()方法时,它会使线程进入就绪状态,等待系统调度。系统会为该线程分配资源,并在合适的时机执行线程的run()方法。
  • 实际上,start()方法会启动一个新的系统级线程,该线程会并行执行,并与主线程同时运行。
  • 使用start()方法可以充分利用多核处理器,允许多个线程同时执行。
  • start()方法内部会完成一些线程初始化工作,如调用run()方法、分配线程栈空间等。
  1. run() 方法:
  • 直接调用线程的run()方法,不会创建新的线程,而是在当前线程中执行run()方法的代码块。
  • 虽然run()方法内的代码会被执行,但是由于是在主线程中执行,没有实现真正的多线程并行,只是普通的方法调用。
  • 使用run()方法不会开启新的线程,因此适用于在当前线程内执行一个任务,而不是并发执行。

下面是一个简单的示例来说明这两种方法的区别:

class MyThread extends Thread {public void run() {for (int i
http://www.lryc.cn/news/145295.html

相关文章:

  • Java的全排列模板
  • 读书笔记——《万物有灵》
  • 面试现场表现:展示你的编程能力和沟通技巧
  • 34亿的mysql表如何优雅的扩字段长度兵并归档重建
  • C#_进程单例模式.秒懂Mutex
  • AcWing 5050. 排序 (每日一题)
  • 【TypeScript】proxy 和 Reflect
  • STM32f103入门(5)定时器中断
  • Mybatis查询数据
  • 【前车之鉴】: 2023最新教程-将java程序打包到maven私服的正确打开方式,详细流程介绍不怕你掌握不了
  • 如何理解IaaS、PaaS、SaaS?盘点受欢迎的八大SaaS平台!
  • 立创EDA专业版的原理图上器件有一个虚线框
  • JUC并发编程--------基础篇
  • 秒懂算法2
  • 隐秘的角落:Java连接Oracle提示Connection timed out
  • 基于微信小程序的餐厅预订系统的设计与实现(论文+源码)_kaic
  • 科技政策 | 四川省科学技术厅关于发布2024年第一批省级科技计划项目申报指南的通知
  • 深入了解Webpack:特性、特点和结合JS混淆加密的实例
  • 2023-08-23力扣每日一题
  • 分发饼干【贪心算法】
  • 为什么网络互联地址设置为30位地址
  • 青少年棒球锦标赛发展·棒球1号位
  • Unity实现UI图片面板滚动播放效果第二弹
  • Redis的基本操作
  • 省级智慧农业大数据平台项目规划建设方案[195页Word]
  • php图片批量压缩并同时保持清晰度
  • 243:vue+Openlayers 更改鼠标滚轮缩放地图大小,每次缩放小一点
  • NOI2015D. 荷马史诗
  • 并法编程(集合类不安全)03详细讲解未补充
  • 软考:中级软件设计师:大数据