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

线程的生命周期·


知识点详细说明

Java线程的生命周期由Thread.State枚举明确定义,包含以下6种状态


1. 新建状态(NEW)
  • 定义:线程对象被创建后,但未调用start()方法。
  • 特点
    • 未分配系统资源(如CPU时间片)。
    • 可通过Thread.getState()获取状态为NEW
  • 示例
    Thread t = new Thread(); // 状态为NEW
    

2. 就绪状态(RUNNABLE)
  • 定义:调用start()后,线程等待CPU调度。
  • 特点
    • 线程进入可运行线程池,随时可能被操作系统选中执行。
    • 包含两种子状态:
      • Ready:等待CPU分配时间片。
      • Running:正在执行run()方法(操作系统实际分配时间片)。
  • 触发条件
    • start()方法被调用。
    • 线程从阻塞/等待状态恢复(如sleep()结束、notify()唤醒)。

3. 阻塞状态(BLOCKED)
  • 定义:线程因竞争同步锁失败而暂停。
  • 触发条件
    • 尝试进入synchronized代码块/方法,但锁已被其他线程占用。
  • 恢复条件
    • 获得锁后进入RUNNABLE状态。

4. 等待状态(WAITING)
  • 定义:线程主动放弃CPU,进入无限期等待。
  • 触发条件
    • 调用Object.wait()(需配合synchronized)。
    • 调用Thread.join()(不带超时参数)。
    • 调用LockSupport.park()
  • 恢复条件
    • 被其他线程唤醒(如notify()/notifyAll())。
    • 目标线程终止(针对join()的情况)。

5. 超时等待状态(TIMED_WAITING)
http://www.xdnf.cn/news/4958.html

相关文章:

  • [计算机科学#13]:算法
  • 探秘 InSAR:数据处理与形变信息提取全解析
  • centos 7 安装 java 运行环境
  • 左支座加工工艺与钻φ25孔专用夹具设计
  • Bearer Token的神秘面纱:深入解析HTTP认证头的设计哲学
  • JAVA实战开源项目:健身房管理系统 (Vue+SpringBoot) 附源码
  • qxl显卡与spice模块笔记
  • 规则组,注入组
  • setData执行后操作方法-微信小程序
  • DeepResearch深度搜索实现方法调研
  • 在线工具源码_字典查询_汉语词典_成语查询_择吉黄历等255个工具数百万数据 养站神器,安装教程
  • 嵌入式学习笔记 - 垂直消隐期
  • 自然语言处理-词性标注的基本概念
  • 黄金、碳排放期货市场API接口文档
  • 【阿里云免费领取域名以及ssl证书,通过Nginx反向代理web服务】
  • BUUCTF——杂项渗透之赛博朋克
  • 操作系统导论——第27章 插叙:线程API
  • softmax传递函数+交叉熵损失
  • ACTF2025 - Web writeup
  • C++编程语言:标准库:标准库概观(Bjarne Stroustrup)
  • 第六章 进阶09 我的人才观
  • 【设计模式】GoF设计模式之策略模式(Strategy Pattern)
  • rust 中的 EBNF 介绍
  • Uniapp编写微信小程序,使用canvas进行绘图
  • uni-app,小程序中的addPhoneContact,保存联系人到手机通讯录
  • 不止是UI库:React如何重塑前端开发范式?
  • Java中的内部类详解
  • iOS创建Certificate证书、制作p12证书流程
  • eNSP中路由器RIP协议配置完整实验实验和命令解释
  • Starrocks 的 ShortCircuit短路径