社区
Java SE
帖子详情
线程状态切换的本质,从计算机系统方向分析或者其他底层方向分析
一个阳光努力的程序盐
2019-08-07 11:39:34
线程状态切换的本质,从计算机系统方向分析或者其他底层方向分析
...全文
246
1
打赏
收藏
线程状态切换的本质,从计算机系统方向分析或者其他底层方向分析
线程状态切换的本质,从计算机系统方向分析或者其他底层方向分析
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
1 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
northwesternwind
2019-08-07
打赏
举报
回复
线程状态组成:
1 新建(NEW):新创建了一个线程对象。
2. 可运行(RUNNABLE):线程对象创建后,其他线程(比如main线程)调用了该对象的start()方法。该状态的线程位于可运行线程池中,等待被线程调度选中,获取cpu 的使用权 。
3. 运行(RUNNING):可运行状态(runnable)的线程获得了cpu 时间片(timeslice) ,执行程序代码。
4. 阻塞(BLOCKED):阻塞状态是指线程因为某种原因放弃了cpu 使用权,也即让出了cpu timeslice,暂时停止运行。直到线程进入可运行(runnable)状态,才有机会再次获得cpu timeslice 转到运行(running)状态。阻塞的情况分三种:
5. 死亡(DEAD):线程run()、main() 方法执行结束,或者因异常退出了run()方法,则该线程结束生命周期。死亡的线程不可再次复生。
线程状态切换的本质,主要是因为资源竞争。除了新建和死亡状态之外,线程根据所需要资源的可用情况,在可运行、运行和阻塞状态之间切换。
1. 线程因为等待所需要的资源,或者因为主动sleep而进入阻塞状态,从而释放线程所占用的cpu资源。
2. 当线程sleep时间到,或者所等待的资源可用时,会进入可运行状态。
3. 因为操作系统的调度,线程获得相应的cpu时间片之后,就进入运行状态。
4. 当线程的时间片用完后,再次进入可运行状态。
5. 当线程运行中主动sleep, 或者因为所需要的资源被占用时,进入阻塞状态(同1)
c#多
线程
学习入门经典
3. **多
线程
**:在一个进程中同时运行多个
线程
,这使得程序可以并行处理任务,提高了
计算机系统
的效率和响应速度。 多
线程
的优势主要体现在: - **资源利用率高**:多
线程
可以充分利用多核CPU,提高计算性能。 - *...
操作系统~复习
线程
状态
转换的过程, 对比租阻塞和挂起的区别, 以及上下文
切换
消耗什么资源
文章目录
线程
的
状态
阻塞与挂起的区别
线程
的阻塞
线程
切换
为何耗资源
线程
的挂起挂起的原因
线程
的
状态
废话不多说先看图 新创建一个新的
线程
对象后,再调用它的start()方法,系统会为此
线程
分配CPU资源,使其处于...
深入解析操作系统
线程
状态
与Java
线程
状态
的
本质
差异
而JVM
线程
状态
(NEW、RUNNABLE、BLOCKED等)则是对
底层
系统的抽象封装,两者存在约30%的
状态
映射差异。文章通过大量代码示例和图表对比,揭示了
状态
转换的
底层
原理,并提供了死锁检测、性能调优等实战技巧。最后指出...
操作系统 | 进程/
线程
切换
问题
4. 程序的运行涉及大量的计算机资源配置,出于安全性考虑,这些资源的分配,需要陷入内核,
切换
到操作系统,由操作系统来进行资源的配置。5. 由于,置换掉一大堆的
状态
,进程数一高,大部分的系统资源都被进程
切换
吃...
计算机操作系统:
线程
的基本概念
线程
是进程内的一个独立执行单元,是操作系统进行CPU调度的最小单位,多个
线程
共享所属进程的资源空间,同时拥有独立的执行上下文。调度的最小单位:CPU调度不再以进程为单位,而是以
线程
为单位(如时间片分配给
线程
...
Java SE
62,625
社区成员
307,257
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章