当前位置:网站首页>线程三连鞭之“线程的状态”
线程三连鞭之“线程的状态”
2022-08-04 23:21:00 【小洪正在努力】
一:线程有哪些状态?
- 新生:NEW
- 运行:RUNNABLE
- 阻塞:BLOCKED
- 等待:WAITING
- 超时等待:TIMED_WAITING
- 终止:TERMINATED
二:线程的基本概念,图形理解以及状态间的关系
- 新建(new):新建线程对象。
- 可运行(runnanble):线程对象创建后,其他线程(比如main线程)调用了该对象的start( )方。该状态的线程位于可运行线程池中,等待被线程调度选中,获得CPU的使用权。
- 运行(running):可运行状态(runnable)的线程获得CPU时间片,执行程序代码。
- 阻塞(blocked):阻塞状态是线程因为某种原因放弃了CPU的使用权,暂时停止运行,知道线程进入可运行状态(runnable)才有机会再次获得CPU分配的时间片进入运行状态(running)。
- 死亡(dead):线程run( ), main( )方法执行结束,或者因为异常推出了run( )方法,则该线程结束生命周期。
阻塞的情况分三种:
① 同步阻塞:获得同步锁时,该锁被别的线程占用,JVM会把该线程放进锁池中。
②其他阻塞:调用了sleep( )或者join( )方法。JVM 会把该线程置为阻塞状态。当 sleep ()状态超时、 join ()等待线程终止或者超时、或者 I /O 处理完毕时,线程重新转入可运行( runnable )状态。
③等待阻塞:执行wait( )方法,JVM会把该线程放入等待队列进入Waiting状态,等待其他线程notify通知唤醒。
边栏推荐
- MySQL基础篇【聚合函数】
- Acwing3593. 统计单词
- PZK学C语言之字符串函数(一)
- go语言的time包介绍
- 文献阅读十——Detect Rumors on Twitter by Promoting Information Campaigns with Generative Adversarial Learn
- 逆序对的数量
- typeScript-promise
- [QNX Hypervisor 2.2用户手册]10.6 vdev mc146818
- 亿流量大考(3):不加机器,如何抗住每天百亿级高并发流量?
- [Cultivation of internal skills of string functions] strncpy + strncat + strncmp (2)
猜你喜欢
随机推荐
注解@EnableAutoConfiguration的作用以及如何使用
typeScript-闭包函数的使用
[QNX Hypervisor 2.2用户手册]10.4 vdev hpet
web3.js
【游戏建模模型制作全流程】ZBrush蜥蜴模型雕刻教程
MySQL的JSON 数据类型2
2022年华数杯数学建模
360市值四年蒸发3900亿,政企安全能救命吗?
生产者消费者问题
功耗控制之DVFS介绍
PZK学C语言之字符串函数(一)
Service Mesh落地路径
[Cultivation of internal skills of string functions] strcpy + strcat + strcmp (1)
【七夕快乐篇】Nacos是如何实现服务注册功能的?
从“草原牛”到“数字牛”:蒙牛的数字化转型之道
【云原生 · Kubernetes】Kubernetes运维
Shell expect 实战案例
堪称奔驰“理财产品”,空间媲美宝马X5,采用了非常运动的外观
学生管理系统架构设计
软件测试技术之如何编写测试用例(4)