Java 线程一共有 6 种状态:

  • NEW新建状态,当一个线程被创建完成,还没有调用 start() 方法时,是这种状态。
  • RUNNABLE可运行状态,当一个线程正在正常地执行 run() 中的代码时,是这种状态。可运行状态包含了
    • READY:等待 CPU 执行的状态。线程正在等待 CPU 调度运行,或者 CPU 时间片用光,或者调用了yield() 方法,会是这种状态。
    • RRUNNING:正在被 CPU 执行的状态。
  • BLOCKED阻塞状态,当一个线程尝试获取对象的监视器锁失败时(例如未能争抢到对象的监视器锁,从而被 synchronized 关键字修饰的方法/代码块阻塞的线程,这些线程将会放到这个对象的阻塞池(entryList)中),会是这种状态。
  • WAITING等待状态,当一个线程被一些没有过期时间参数的等待方法(例如 wait()、LockSupport.park()、join() 等方法)所挂起时,会是这种状态。这种状态的线程不会尝试去获取监视器锁。(当一个线程调用了对象的 wait() 方法后,将会被放入这个对象的等待池(waitSet)中)。
  • TIMED_WAITING超时等待状态,当一个线程被一些 过期时间参数的等待方法(例如 sleep(long mills)、wait(long mills)、LockSupport.parkNanos()、join(long mills) 等方法)所挂起时,会是这种状态。这种状态的线程不会尝试去获取监视器锁。(当一个线程调用了对象的 wait() 方法后,将会被放入这个对象的等待池(waitSet)中)。
  • TERMINATED死亡状态,当一个线程的 run() 方法执行完毕时,会是这种状态。

Java 线程状态流转相关推荐

  1. 【Java进阶营】Java技术专题「难点-核心-遗漏」Java线程状态流转及生命周期的技术指南(知识点串烧)

    前提介绍 本章主要介绍相关线程声明周期的转换机制以及声明周期的流转关系以及相关AQS的实现和相关的基本原理,配合这相关官方文档的中英文互译的介绍. 线程状态流转及生命周期 当线程被创建并启动以后,它既 ...

  2. Java线程状态流转及部分函数说明

    下面这张是Java线程状态改变的图例. 下面就其中几点和函数进行说明 运行态 Java将操作系统中的"运行中running"和"就绪ready"两种状态统称为运 ...

  3. 【深入浅出Java并发编程指南】「难点 - 核心 - 遗漏」线程状态流转及生命周期的技术指南(知识点串烧)

    前提介绍 本章主要介绍相关线程声明周期的转换机制以及声明周期的流转关系以及相关AQS的实现和相关的基本原理,配合这相关官方文档的中英文互译的介绍. 线程状态流转及生命周期 当线程被创建并启动以后,它既 ...

  4. 面试必备,Java线程状态之细节回顾

    点击上方"方志朋",选择"设为星标" 做积极的人,而不是积极废人 来源:https://dwz.cn/vYqjShos Java线程有6种状态 在某个给定时间点 ...

  5. Java线程状态及 wait、sleep、join、interrupt、yield等的区别

    Java中的线程状态(详见Java线程状态及转换-MarchOn): wait:Object类的实例方法,释放CPU执行权,进入等待状态,直到  被中断.被拥有该对象锁的线程唤醒(notify或not ...

  6. java runnable wait_面试官:都说阻塞 I/O 模型将会使线程休眠,为什么 Java 线程状态却是 RUNNABLE?...

    摘要: 原创出处 https://studyidea.cn 「公众号:程序通事 」欢迎关注和转载,保留摘要,谢谢! 使用 Java 阻塞 I/O 模型读取数据,将会导致线程阻塞,线程将会进入休眠,从而 ...

  7. java 线程状态_Java线程为何没有Running状态?我猜你不知道。

    作者:国栋原文:https://my.oschina.net/goldenshaw/blog/705397 Java虚拟机层面所暴露给我们的状态,与操作系统底层的线程状态是两个不同层面的事.具体而言, ...

  8. java线程切换 notify_浅谈 Java线程状态转换及控制

    作者:城北有个混子 出自:博客园 1.线程的状态(系统层面) 一个线程被创建后就进入了线程的生命周期.在线程的生命周期中,共包括新建(New).就绪(Runnable).运行(Running).阻塞( ...

  9. Java 线程状态之 TIMED_WAITING

    定义 一个正在限时等待另一个线程执行一个动作的线程处于这一状态. A thread that is waiting for another thread to perform an action fo ...

最新文章

  1. 我在清华当工程师的日子
  2. 临渊羡鱼,不如退而结网
  3. P5437-[XR-2]约定【拉格朗日差值,数学期望】
  4. adb android源码分析,Android Adb 源码解析(base on Android 9.0)
  5. [BZOJ4817]树点涂色
  6. 特别推荐:系统性能提升优先法宝 | 缓存应用实践
  7. 在excel工作表中c1单元格_Excel工作表中的11个逻辑函数应用技巧,中文解读,动图演示!...
  8. 支持下一代分布式应用链开发的区块链服务互联网
  9. 学习环境搭建:UDK2017 下载以及编译
  10. 在线 JSON 格式化校验工具
  11. sql选择性插入_SQL插入选择
  12. 15日精读掌握《高德纳:具体数学》计划完成报告
  13. matlab心率和呼吸相关性分析,动态心电图的睡眠呼吸监测与心率变异性的相关性分析...
  14. 另一半是程序员,一定要好好爱ta
  15. Android JSON:Gson,FastJson解析库的使用和对比分析
  16. 【004】VS2017配置OpenCV4.1.0
  17. js实现完美身份证号有效性验证+身份证与姓名匹配
  18. SQLserver分离数据库
  19. catia利用宏批量改名的方法_CATIA批量改名功能大揭秘
  20. Word无法打开该文件,因为文件格式与文件扩展名不匹配 | 无法从该位置打开扩展名为.asd的文件

热门文章

  1. linkedhashset_Java LinkedHashSet clear()方法与示例
  2. 软件测试 测试策略_测试策略| 软件工程
  3. Nginx For Windows 路由配置
  4. Nginx For Windows 关于 worker_connections 不生效问题
  5. linux——进程(创建、终止、等待、替换)
  6. HTML网页使用CDN的jquery.qrcode.min.js生成页面二维码(直接可以复制使用)
  7. rds oracle,Amazon RDS Oracle数据库托管
  8. 怎么格式化电脑_U盘格式化后数据能恢复吗?人人都能学会的恢复方法!
  9. 永洪bi_案例分享!永洪BI助力知名三甲医院数字化转型升级
  10. react的导出是怎么实现的_从零开始开发一个 React