关于IO多路复用的疑问

关于IO多路复用的疑问

老师,

1.epoll/poll/select的使用都会用到死循环,会阻塞当前进程。如果我还有其它逻辑,写在这个死循环里也不太合适吧。

是不是课堂上为了演示,做项目的时候有别的写法?


2. epoll是属于异步执行吗?



正在回答

登陆购买课程后可参与讨论,去登陆

1回答
第一个问题
Io多路复用要实现的功能是用单线程监听多个文件的io事件,所以写死循环是没问题的,其他萝莉音在其他线程里做。
第二个问题
epoll可以算异步,但是本质上更像是同步死等一段时间,如果这一段时间没有io发生,那就做其他事。
异步是指程序执行流程,一个任务a做一半不等待它的结果,立即去做别的任务b,某一时刻任务a的结果出来了,再去处理a的结果;
常见的异步情况有:
异步通信,发送方发出指令却不等待应答,继续发其他指令,收到应答就立马开始解析;
异步写数据到文件,调用write写文件,要写得数据在write调用结束后可能被系统缓存了,这时程序已经在做其他事了;
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师