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

Thread类中run和start的区别

        答:调用线程类中的 start 方法,才开始创建并启动线程,而线程被回收,则是要执行完线程的入口方法(对于主线程来说,则是要执行完 main 方法),这里要回收线程则是要将()里的{}所包含的代码给执行完毕,才能被系统回收。当start调用后,线程被启动,此时线程处于就绪状态,可被JVM所调度执行,在调度过程中,JVM通过调用线程类的run()方法来完成实际的业务逻辑,当run()方法结束后,此线程就会终止。

Thread t1 = new Thread(() -> {System.out.println("haha");//此时的run方法则是Thread的()里的方法,此为拉姆达表达式。
});

如果直接调用Thread类中的run方法,则不会创建线程,此时与调用普通类中的方法并无区别,此时仍然只有一个线程,即主线程。因此调用 start 方法, 才真的在操作系统的底层创建出一个线程.,并启动线程,run方法只是要被执行的逻辑,单纯的调用run方法是无法达成多线程的目的。

http://www.lryc.cn/news/161260.html

相关文章:

  • ElementUI浅尝辄止35:Checkbox 多选框
  • 讲讲如何用IDEA开发java项目——本文来自AI创作助手
  • Kafka3.0.0版本——消费者(Range分区分配策略以及再平衡)
  • WeiTools
  • 目标检测数据集:医学图像检测数据集(自己标注)
  • 【系统设计系列】数据库
  • mp4压缩视频不改变画质?跟我这样压缩视频大小
  • AQS同步队列和等待队列的同步机制
  • vue3实现无限循环滚动的方法;el-table内容无限循环滚动的实现
  • Windows 安装 MariaDB 数据库
  • RK3568-mpp(Media Process Platform)媒体处理软件平台
  • 【ModelSim】使用终端命令行来编译、运行Verilog程序,创建脚本教程
  • 腾讯云网站备案详细流程_审核时间说明
  • HTTP介绍:一文了解什么是HTTP
  • 动态规划之子数组系列
  • LeetCode(力扣)332.重新安排行程Python
  • Pytho 从列表中创建字典 (dict.fromkeys()的问题)
  • 第14节-PhotoShop基础课程-图框工具
  • 使用 Nacos 在 Spring Boot 项目中实现服务注册与配置管理
  • package.json中workspaces详解与monorepo
  • Spring Boot + Vue的网上商城之商品信息展示
  • 深度优先搜索遍历与广度优先搜索遍历
  • java 中 返回一个空Map
  • sql 执行插入多条语句中 n个insert 与 一个insert+多个values 性能上有和区别 -- chatGPT
  • 数学建模国赛C蔬菜类商品的自动定价与补货决策C
  • 在程序开发中,接口(interface)的重要性
  • MyBatis关联关系映射详解
  • 常用电子元器件基础知识
  • git撤销还未push的的提交
  • MySQL--数据库基础