当前位置: 首页 > 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)
http://www.dtcms.com/a/180285.html

相关文章:

  • 加密领域 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之探针
  • MCP(Model Context Protocol)是专为LLM(大语言模型)应用设计的标准化协议
  • 解决 Ubuntu DNS 无法解析问题(适用于虚拟机 长期使用)
  • Spring MVC Session 属性 (@SessionAttributes) 是什么?如何使用它共享数据?
  • 信赖域策略优化TRPO算法详解:python从零实现
  • .net/C#进程间通信技术方案总结
  • 机器学习与深度学习的区别与联系:多角度详细分析
  • Linux基础(关于进程相关命令)
  • CSS opacity
  • 计算人声录音后电平的大小(dB SPL->dBFS)
  • 访问网站提示“不安全”“有风险”怎么办?