#多线程学习——线程的5种状态

本文详细解析线程的五种状态:新建、就绪、运行、阻塞和死亡,通过生动的比喻帮助理解线程如何从创建到结束的整个生命周期。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

线程状态图
在这里插入图片描述
线程包括5种状态
1.new(新建状态):线程对象被创建后,就会进入新建状态。如:Thread thread = new Thread().
(通俗说:一个thread少女长大成人)

2.Runnable(就绪状态):就绪状态也叫可执行状态。当线程被创建后,调用start方法后(thread.start()),该线程就进入了就绪状态,等待CPU调度使用。
(通俗说:thread少女被start公公选为秀女,从此就是thread秀女等待被CPU皇帝宠幸)

3.Running(运行状态):当线程获取到CPU的使用权时,即进入了运行状态。注:运行状态只能从就绪状态转化而来
(通俗说:thread秀女被CPU皇帝宠幸了,变成了thread妃子)

4.Blocked(阻塞转态):阻塞状态是线程由于某些原因放弃了CPU使用权,暂时停止运行的一种状态。直到线程进入就绪状态,才有机会转到运行状态。阻塞的情况可以分为三种:
(通俗说:thread妃子因为某些原因不想或不能被CPU皇帝所宠幸)
(1)wait(等待阻塞):线程调用wait()方法,让线程等待某工作的完成
(通俗说:thread妃子要先做其他的事情,让CPU皇帝去宠幸其他妃子)

(2)synchronized(同步阻塞):线程在获取同步锁(synchronized)失败,即锁被其他线程占用,它就会进入同步阻塞状态。(通俗说:CPU皇帝在宠幸其他妃子)

(3)其他阻塞:当线程调用sleep(),join()或者发出I/O请求的时候,线程就会进入阻塞转态。当sleep,join方法等线程终止、或者超时、或者I/O处理完毕时,线程就会重新进入就绪状态。
(通俗说:thread妃子在睡觉、threa妃子不想被宠幸、thread妃子要忙一件要花费很久的事情,让CPU皇帝先宠幸其他妃子)

5.Dead(死亡状态):线程执行完或者异常退出了run方法,该线程结束生命周期。
(通俗说:thread妃子正常走完一生或者中途出现意外去世)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值