(转) epoll的LT和ET模式的区别
来源:互联网 发布:linux添加永久静态路由 编辑:程序博客网 时间:2024/05/22 03:53
LT模式:epoll就是一个快速版poll,可读可写就绪条件和传统poll一致
ET模式:为了避免Starvation,建议
1)文件描述符设置为非阻塞
2)只在read或write返回EAGAIN后,才能调用下一次epoll_wait
3)应用层维护一个就绪链表,进行轮询,可以防止大量IO时在一个描述符上长期read或write(因为只有等到read
或 write返回EAGAIN后才表示该描述符处理完毕)而令其它描述符starve
理解ET的含义后,上面那些操作其实都是显然的。以wirte为例说明,LT时只要有一定范围的空闲写缓存区,每次epoll_wait都是可写条件就绪,但是ET时从第一次可写就绪后,epoll_wait不再得到该描述符可写就绪通知直到程序使描述符变为非可写就绪(比如write收到 EAGAIN)后,epoll_wait才可能继续收到可写就绪通知(比如有空闲可写缓存)
其实ET相对于LT来说,把文件描述符状态跟踪的部分责任由内核空间推到用户空间,内核只关心状态切换即从未就绪到就绪切换时才通知用户,至于保持就绪状态的,内核不再通知用户,这样在实现非阻塞模型时更方便,不需要每次操作都先查看文件描述符状态。上述多数内容取自man epoll
ET模式:为了避免Starvation,建议
- (转) epoll的LT和ET模式的区别
- epoll的LT模式和ET模式
- epoll的ET模式和LT模式
- epoll中ET和LT模式的区别
- epoll的LT和ET的区别
- EPOLL的ET和LT模式
- EPOLL的ET和LT模式
- epoll的ET和LT模式详解
- EPOLL的ET和LT模式
- epoll的ET和LT模式详解
- epoll的LT和ET模式
- epoll的ET和LT模式详解
- Epoll 的LT和ET模式
- epoll的LT和ET模式
- epoll的ET和LT模式
- EPOLL的ET和LT模式
- epoll的LT和ET模式
- epoll的ET和LT模式详解
- 2011-8-24
- 关于KernelFaultCheck启动项
- 动态控件的创建和使用--动态按钮
- GetRegionData这个函数真难用
- Android中模拟器如何访问本地服务器
- (转) epoll的LT和ET模式的区别
- 初涉多线程与socket
- Android应用开发——系统自带样式Android:theme
- (转) 使用epoll的ET模式下的tcp服务处理特点
- 关于C语言文件操作的小结
- 解决WINCE6.0新建工程编译出错的问题
- 5个快如闪电的Word格式化技巧
- linux学习笔记(四) 退出文件编辑(vi)
- 条款6:若不想使用编译器自动生成的的函数,就该明确拒绝