博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java多线程的状态及转换
阅读量:6744 次
发布时间:2019-06-25

本文共 544 字,大约阅读时间需要 1 分钟。

hot3.png

一. 线程状态类型

1. 新建状态(New):新创建了一个线程对象。
2. 就绪状态(Runnable):线程对象创建后,其他线程调用了该对象的start()方法。该状态的线程位于可运行线程池中,变得可运行,等待获取CPU的使用权。
3. 运行状态(Running):就绪状态的线程获取了CPU,执行程序代码。
4. 阻塞状态(Blocked):阻塞状态是线程因为某种原因放弃CPU使用权,暂时停止运行。直到线程进入就绪状态,才有机会转到运行状态。阻塞的情况分三种:
(一)、等待阻塞:运行的线程执行wait()方法,JVM会把该线程放入等待池中。
(二)、同步阻塞:运行的线程在获取对象的同步锁时,若该同步锁被别的线程占用,则JVM会把该线程放入锁池中。
(三)、其他阻塞:运行的线程执行sleep()或join()方法,或者发出了I/O请求时,JVM会把该线程置为阻塞状态。当sleep()状态超时、join()等待线程终止或者超时、或者I/O处理完毕时,线程重新转入就绪状态。
5. 死亡状态(Dead):线程执行完了或者因异常退出了run()方法,该线程结束生命周期。

二. 线程状态图

174442_0BNr_182175.jpg

 

 

转载于:https://my.oschina.net/lybblbb/blog/844914

你可能感兴趣的文章
ASP.NET集成的数据维护介面
查看>>
Codeforces Round #131 (Div. 2)
查看>>
Visio对MySQL数据库反向工程生成ER数据库模型图_百度文库
查看>>
QtCreator开发局域网聊天工具(Project 2)
查看>>
VIEW: X$KTUXE - Transaction Entry (table)
查看>>
深入理解Oracle Universal Installer (OUI) Text
查看>>
从性能的角度谈SQL Server聚集索引键的选择
查看>>
tomcat站点配置
查看>>
Java Swing 探索(一)LayoutManager
查看>>
[Backbone]2. More detail in Models
查看>>
Permutations leetcode java
查看>>
JAVA中关于锁机制
查看>>
用boost共享内存实现进程通信的例子
查看>>
【转】搜狗开源内部项目管理平台Cynthia意欲何为
查看>>
Hive基础之Hive表常用操作
查看>>
[C#] 常用工具类——直接在浏览器输出数据
查看>>
原码 & 反码 & 补码 & 详解
查看>>
Linq to Sql : 三种事务处理方式
查看>>
无线点餐系统应用源码(转)
查看>>
POJ3169:Layout(差分约束)
查看>>