多线程part5-线程的生命周期

1.创建线程对象(新建状态)

↓↓↓start()方法↓↓↓

2.有执行资格没有执行权(就绪状态,不停抢cpu),有资格抢cpu,但目前没有抢到

↓↓↓抢到执行权↓↓↓

↑↑↑被其他线程抢到执行权↑↑↑

3.有执行资格有执行权(运行状态)  ————sleep()或者其他堵塞方法————》没有执行资格没有执行权(阻塞状态)——时间到或者堵塞结束——》2.(就绪状态) 

↓↓↓run()执行完毕↓↓↓

4.线程死亡(死亡状态)

 

线程睡眠时间到了,不会立马执行下面的代码,还要进行抢夺

 

查看API帮助文档

可以看到线程的六个状态

 新建-就绪-阻塞-无限等待-计时等待-死亡
为什么没有运行状态?

因为当线程抢到cpu执行权时,java虚拟机将线程交给了操作系统去管理,因为不是虚拟机管理,所以没有定义这个状态

 

以上是Java源代码的六种状态

而操作系统层面,可以看成有五种状态

新建

分到CPU时间:运行

可以分到CPU时间:就绪

分不到CPU时间:阻塞

终结

 

posted @   名泽  阅读(9)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?

阅读目录(Content)

此页目录为空

点击右上角即可分享
微信分享提示