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

线程的生命周期·


知识点详细说明

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)

相关文章:

  • 加密领域 AI Agent 的崛起:DeFAI 如何重塑金融
  • Webpack基本用法学习总结
  • Java EE初阶——初识多线程
  • 基于阿里云DataWorks的物流履约时效离线分析
  • 2025.05.07-淘天算法岗-第二题
  • UI设计公司兰亭妙微分享:汽车 MHI 设计的界面布局创新法则
  • CNG汽车加气站操作工岗位职责
  • Oracle版本、补丁及升级(12)——版本体系
  • 涨薪技术|0到1学会性能测试第56课- 堆与栈、GC回收机制
  • 深入探索 Python 的 QuTiP 5 库:量子计算与开放量子系统模拟的利器
  • Prometheus生产实战全流程详解(存储/负载/调度篇)
  • sklearn自定义pipeline的数据处理
  • stm32之USART
  • 【计算机主板架构】ATX架构
  • CN3791 锂电池充电芯片详解及电路设计要点-国产芯片
  • uniapp-商城-46-创建schema并新增到数据库
  • AI技术与园区运营的深度融合:未来生态型园区的建设路径
  • 镜头内常见的马达类型(私人笔记)
  • Python 数据分析与可视化:开启数据洞察之旅(5/10)
  • k8s之探针
  • 巴基斯坦称回应挑衅,对印度发起军事行动
  • 美乌基金协议:美国搞了一套可在资源富集地区复刻的商业模式
  • 海关总署统计分析司司长:4月进出口增速较一季度加快4.3个百分点
  • 七大交响乐团“神仙斗法”,时代交响在上海奏出时代新声
  • 欧派家居:一季度营收降4.8%,目前海外业务整体体量仍较小
  • 中国德国商会报告:76%在华德企受美国关税影响,但对华投资战略依然稳固