关注
在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 评论
相关推荐
点赞 评论 收藏
分享
点赞 评论 收藏
分享
鑫鑫向栄:爱你,妈咪 点赞 评论 收藏
分享
2025-11-03 14:26
武汉设计工程学院 运营 点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客热帖
更多
- 1... 双非本秋招总结6704
- 2... 打工的这一年4046
- 3... 你会和mentor进行deeptalk吗?3005
- 4... 学院本 末 211 硕勇闯 java 后端实习美团 oc 逆袭指南2975
- 5... 无语到一定地步是会笑的2890
- 6... 金丹后期牛友!我们新年再见2811
- 7... 牛客运营们,我保证这是我最后一次消费烤肠了!2641
- 8... 没人带+同事冷漠,真的会内耗2634
- 9... 希望新的一年,我依然是走向幸福的那个人2355
- 10... 双非本2025秋招总结:65w+SSP三选一,最终还是“有鹅选鹅”|附面试心路历程2355
正在热议
更多
# 对2025年忏悔 #
4213次浏览 99人参与
# 你觉得专业和学校哪个对薪资影响最大 #
87451次浏览 587人参与
# 实习没人带,苟住还是跑路? #
12217次浏览 260人参与
# 春招前还要继续实习吗? #
4875次浏览 63人参与
# 元旦假期你打算怎么过 #
7911次浏览 170人参与
# 巨人网络求职进展汇总 #
183808次浏览 1223人参与
# 腾讯云智研发工作体验 #
34436次浏览 164人参与
# 面试官问过你最刁钻的问题是什么? #
9282次浏览 99人参与
# 大家实习都在做什么? #
8515次浏览 93人参与
# 一人说一家双休的公司 #
6901次浏览 93人参与
# 我们是不是被“优绩主义”绑架了? #
8916次浏览 283人参与
# 新年的第一句祝福 #
51014次浏览 376人参与
# 妈妈治愈了你哪些脆皮时刻 #
38917次浏览 338人参与
# 求职遇到的搞笑事件 #
154171次浏览 889人参与
# 机械人你觉得今年行情怎么样? #
6305次浏览 88人参与
# 设计人的面试记录 #
177681次浏览 1576人参与
# 腾讯工作体验 #
548702次浏览 3662人参与
# 牛客2025仙途报告 #
37360次浏览 488人参与
# 一起聊字节 #
238229次浏览 1014人参与
# 你做过哪些dirty work #
25270次浏览 155人参与
