关注
在IO多路复用中使用epoll_wait等待IO事件的时候,进程会释放CPU。在Linux中,进程状态将会变成"S"(可中断睡眠状态)或"D"(不可中断睡眠状态,通常等待IO)。两个状态下,进程都不会占用CPU资源,因为它们都是不同形式的睡眠状态,CPU会切换到其他进程或线程继续工作。
"S"状态是可中断的睡眠状态,表示进程正在等待某个条件的满足或某个事件的发生。这种状态下的等待是可以被信号打断的,例如,系统调用如read()在没有数据可读时会使进程进入"S"状态,但接收到信号后,进程可以从系统调用中返回,处理信号。
"D"状态则是不可中断的睡眠状态,进程在这种状态下一般是正在等待某个硬件级别的IO操作完成,例如,等待磁盘IO或网络IO。这种状态的进程不能被信号打断,因为它们通常涉及到一些必须完成的硬件操作。
当你调用epoll_wait时,如果当前没有IO事件,进程会进入"S"状态。如果系统调用涉及到硬件级别的不可中断IO操作,进程可以进入"D"状态。这样设计是为了在IO操作期间不消耗CPU资源,同时允许其他进程或线程使用CPU。
所以,使用epoll_wait时,进程会进入睡眠状态直到事件发生,从而释放CPU。
来自 gpt4 的回答
查看原帖
10 评论
相关推荐
点赞 评论 收藏
分享
05-21 19:26
门头沟学院 前端工程师 点赞 评论 收藏
分享


点赞 评论 收藏
分享
点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客热帖
更多
- 1... 分享一下年底被广州某游戏公司裁员的经历2.3W
- 2... 挚文集团-陌陌笔试202506062.0W
- 3... 研一快手后端开发,一周速通,附一二面面经1.6W
- 4... 被BOSS直聘某公司老板骂!惊现素质天花板!1.2W
- 5... 牛友们是选爱情还是选前途?9373
- 6... 在携程实习后,我的想法更加坚定了9167
- 7... 金山办公测试春招一面_珠海8870
- 8... 26学院本游戏客户端鼠鼠求职碎碎念+总结8288
- 9... 乡下人第一次到上海租房,隔壁sexy声音搞的我火气很大7254
- 10... 不是,你一个应届毕业生用什么BOSS啊!6368
正在热议
更多
# 我的实习收获 #
32239次浏览 504人参与
# 第一份工作应该选高薪还是热爱? #
61648次浏览 561人参与
# 实习吐槽大会 #
34802次浏览 162人参与
# 2025牛客秋招季 #
5197次浏览 160人参与
# 晒一晒你的工位 #
86366次浏览 307人参与
# 我的租房踩坑经历 #
30386次浏览 308人参与
# 移动求职进展汇总 #
1593次浏览 17人参与
# 穿越回高考你还会选现在的专业吗 #
22883次浏览 270人参与
# 26届秋招投递记录 #
4293次浏览 115人参与
# 求职遇到的搞笑事件 #
113208次浏览 769人参与
# 招银网络求职进展汇总 #
113263次浏览 741人参与
# 地方国企笔面经互助 #
29964次浏览 98人参与
# 双非能在秋招上岸吗? #
215325次浏览 1144人参与
# 毕业旅行去哪玩儿 #
1333次浏览 33人参与
# 如果有时光机,你最想去到哪个年纪? #
47246次浏览 800人参与
# 非技术岗简历怎么写 #
209881次浏览 2861人参与
# 打工人锐评公司红黑榜 #
146204次浏览 920人参与
# 找工作有哪些冷知识 #
97977次浏览 1382人参与
# 携程求职进展汇总 #
533575次浏览 3992人参与
# 牛友们,签完三方你在忙什么? #
95114次浏览 839人参与