动画演示:epoll io多路复用的触发机制是什么?如何告知用户态有数据到达

作者: 码上加薪分类: 计算机技术 发布时间: 2023-08-07 19:00:00 浏览:14894 次

动画演示:epoll io多路复用的触发机制是什么?如何告知用户态有数据到达

码上加薪:
给自己打个广告,下周发的视频可能会带有送书的环节,完全是免费送书,不用花钱的。这是第一次有出版社联系我给粉丝们送书。书是出版社送的,我先看看书单,帮大家做下筛选。

loslow:
这种触发机制的描述明显来自于硬件中断,我还是习惯叫电平触发。

【回复】其实就是没有数据进程阻塞,有dma数据就触发中断唤醒进城并且会触发回调事件把fd放到就绪队列然后返给用户态
【回复】我也觉得叫什么无所谓,明白含义即可[吃瓜]
爆哥码海求生:
这块说的太不严谨了。内核并没有也没有能力通知用户态,而是用户态一直轮询epoll_wait时返回有数据

【回复】没有数据的时候进城会被阻塞
【回复】回复 @码上加薪 :不是吧 轮询不耗cpu么[笑哭]
码上加薪:
大家在添加收藏的时候,如果觉得讲的可以,再帮忙点个赞吧[脱单doge],点赞多了才能把知识传递给更多的朋友,让我们一起卷起来。[大哭][大哭][大哭]

【回复】回复 @cc丶橙 :Java不容易啊,面试经常被问到你们C++或者C的内容
蓝天上的流云_:
有个小问题,假设将listenfd添加到epoll中后,listenfd可读,eventpoll rdilist中listenfd就绪,如果先对listenfd调用accept,再调用epoll_wait(),是否会返回listenfd?也就是accept函数是否会清除eventpoll中就绪队列的listenfd就绪事件?

小小UP-:
两种触发方式分别在什么情况下被用到?

求智若可:
使用边缘触发时,需要自己来判断是否取完数据吗?求解

箫藏:
这里的30b数据是一个连接的数据,还是可能是多个连接的数据,如果是一个连接的数据在水平触发分两次执行会不会有问题,因为第一次请求的数据不全。这是我的疑惑,数据是指什么?

【回复】回复 @码上加薪 :了解了
【回复】说成30B容易让人误会了,更好的说法是30条数据。这样是不是就好理解了
xyth0000:
过来学习下,qemu 就是用的glib2的event poll事件触发来监听fd的

Q哥1983:
加油加油[奋斗][奋斗]好像看起来好像动画越来越复杂了

【回复】感谢你的慧眼,一直在进步[吃瓜][吃瓜]

io多路复用 触发机制 epoll

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!