首页 / 腾讯云
#
腾讯云
#71442次浏览 1097人互动
此刻你想和大家分享什么
春招CSIG腾讯云一面
懒散之魂:在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 的回答
点赞 评论 收藏
分享
03-23 14:04
门头沟学院 Java 点赞 评论 收藏
分享
05-01 15:26
暨南大学 银行管培生 点赞 评论 收藏
分享
腾讯云一面(客户端开发捞的)
点赞 评论 收藏
分享
点赞 评论 收藏
分享
03-19 15:30
四川大学 Java 点赞 评论 收藏
分享
嘶,关于毁约
yerrey:对云智说:你爹给我offer了,你小子给我懂点事😋
点赞 评论 收藏
分享
04-09 22:02
南京大学 Java 点赞 评论 收藏
分享
腾讯云二面 150min
Rliget:腾讯云这么闲吗,有两个多小时去面试新人,工作量不够饱和啊
点赞 评论 收藏
分享
02-18 23:15
腾讯_IEG_开发 点赞 评论 收藏
分享
10-23 11:41
门头沟学院 C++ 点赞 评论 收藏
分享
2021-08-31 14:59
民生科技_java开发工程师 点赞 评论 收藏
分享
玩命加载中