我是靠谱客的博主 大意小丸子,最近开发中收集的这篇文章主要介绍epoll ET模式触发条件是什么?,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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模式触发条件是什么?所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(50)

评论列表共有 0 条评论

立即
投稿
返回
顶部