概述
linux下的网络模型,首推EPOLL模型
最近在思考,epoll ET模式触发条件是什么?
1.ET模式下,对端发送1000字节数据,tcp内核缓冲区有1000字节数据,然后epoll通知我可读事件,我读取了200就不读了,内存缓冲区还剩余800字节,如果对端不继续发送数据,那么没法再次触发可读事件,这800字节就被丢掉了
如果对端又发送了1个字节,那么会再次触发可读事件,现在内核缓冲区里面有801个字节,epoll通知我可读事件,我可以一次把801个字节都读完
因此ET模式下,一般处理是:触发事件后,一直循环读取数据,直到读返回EAGAIN。而LT模式的epoll就没有这个烦恼。
2.LT模式,对端发送1000字节数据,tcp内核缓冲区有1000字节数据,然后epoll通知我可读事件,我读取了200就不读了,内存缓冲区还剩余800字节,LT模式下epoll会持续触发事件通知应用层,内核缓冲区中还有数据没取,直到内核缓冲区的数据都被取走。
EPOLL的源代码分析
最后
以上就是大意小丸子为你收集整理的epoll ET模式触发条件是什么?的全部内容,希望文章能够帮你解决epoll ET模式触发条件是什么?所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复