当前位置:网站首页>线程三连鞭之“线程的状态”
线程三连鞭之“线程的状态”
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通知唤醒。
边栏推荐
猜你喜欢

NebulaGraph v3.2.0 Release Note, many optimizations such as the performance of querying the shortest path

MySQL增删改查基础
情人节---快来学习一下程序员的专属浪漫吧

Pytorch分布式训练/多卡/多GPU训练DDP的torch.distributed.launch和torchrun

I was rejected by the leader for a salary increase, and my anger rose by 9.5K after switching jobs. This is my mental journey

Basic web in PLSQL

postman接口测试
![[Cultivation of internal skills of memory operation functions] memcpy + memmove + memcmp + memset (4)](/img/08/e115e1b0d801fcebef440ad4932610.png)
[Cultivation of internal skills of memory operation functions] memcpy + memmove + memcmp + memset (4)

【字符串函数内功修炼】strcpy + strcat + strcmp(一)

Literature reading ten - Detect Rumors on Twitter by Promoting Information Campaigns with Generative Adversarial Learn
随机推荐
Nuclei(二)进阶——深入理解workflows、Matchers和Extractors
2022年全网最全接口自动化测试框架搭建,没有之一
Laravel 实现redis分布式锁
注解@EnableAutoConfiguration的作用以及如何使用
Based on the results of the facts
年薪50W+的测试工程师都在用这个:Jmeter 脚本开发之——扩展函数
npm基本操作及命令详解
基于内容的图像检索系统设计与实现--颜色信息--纹理信息--形状信息--PHASH--SHFT特征点的综合检测项目,包含简易版与完整版的源码及数据!
ffplay视频播放原理分析
逆序对的数量
一点点读懂thermal(一)
Ab3d.PowerToys and Ab3d.DXEngine Crack
956. 最高的广告牌
MYS-6ULX-IOT 开发板测评——使用 Yocto 添加软件包
2022年华数杯数学建模
PAN3020 Sub-1G无线收发芯片
【字符串函数内功修炼】strcpy + strcat + strcmp(一)
ClickHouse 二级索引
七牛云图片上传
Qt中的常用控件