epoll的EPOLLLT模式和EPOLLET模式比较
来源:互联网 发布:js substr函数 编辑:程序博客网 时间:2024/06/13 00:20
epoll的EPOLLLT模式和EPOLLET模式比较
epoll是linux系统最新的处理多连接的高效率模型, 工作在两种方式下, EPOLLLT方式和EPOLLET方式。
EPOLLLT是系统默认, 工作在这种方式下, 程序员不易出问题, 在接收数据时,只要socket输入缓存有数据,
都能够获得EPOLLIN的持续通知, 同样在发送数据时, 只要发送缓存够用, 都会有持续不间断的EPOLLOUT
通知。而对于EPOLLET是另外一种触发方式, 比EPOLLLT要高效很多, 对程序员的要求也多些, 程序员必须
小心使用,因为工作在此种方式下时, 在接收数据时, 如果有数据只会通知一次, 假如read时未读完数据,
那么不会再有EPOLLIN的通知了, 直到下次有新的数据到达时为止; 当发送数据时, 如果发送缓存未满也只有
一次EPOLLOUT的通知, 除非你把发送缓存塞满了, 才会有第二次EPOLLOUT通知的机会, 所以在此方式下
read和write时都要处理好。 暂时写到这里, 留作备忘。
附加: 如果将一个socket描述符添加到两个epoll中, 那么即使在EPOLLET模式下, 只要前一个epoll_wait时,未读完, 那么后一个epoll_wait事件时, 也会得到读的通知, 但前一个读完的情况下, 后一个epoll就不会得到读事件的通知了。。。。
epoll_event lev;
//epollin表示有数据包过来,epollout表示现在可以发送数据,socket空闲,连接成功后就有这个事件
lev.events = EPOLLIN | EPOLLOUT | EPOLLET;
lev.data.ptr = this
nRetCode = epoll_ctl(hEpoll, EPOLL_CTL_ADD, m_hSocket, &lev);
- epoll的EPOLLLT模式和EPOLLET模式比较
- epoll的EPOLLLT模式和EPOLLET模式比较
- epoll模型的EPOLLLT模式和EPOLLET模式比较
- epoll模型的EPOLLLT模式和EPOLLET模式比较
- epoll 的 EPOLLET 和 EPOLLLT
- epoll 的 EPOLLET 和 EPOLLLT
- epoll:EPOLLLT和EPOLLET的区别
- 一个关于EPOLLET和EPOLLLT的问题
- EPOLLLT和EPOLLET
- epoll:EPOLLLT模式下的正确读写方式
- epoll:EPOLLET模式下的正确读写方式
- epoll:EPOLLLT模式下的正确读写方式
- epoll的LT模式和ET模式
- epoll的ET模式和LT模式
- EPOLL的ET和LT模式
- EPOLL的ET和LT模式
- epoll的ET和LT模式详解
- EPOLL的ET和LT模式
- android wifi之WifiMonitor
- 数据库自增字段起始值的设置
- IEnumerable与IEnumerator区别
- WebScoket 规范 + WebSocket 协议
- CMMI 3级软件过程改进综述与 文档模板
- epoll的EPOLLLT模式和EPOLLET模式比较
- 如何编写高质量的Javascript代码
- Pareto Chart
- 字典类表的建立和使用
- cocos2d-x学习资源汇总(持续更新。。。)
- 编译性语言和解释性语言
- ZOJ Problem Set - 3665 Yukari's Birthda
- 最常用的代码makefile片段
- 写尽凄凉,沧桑,却写不出那最后一抹忧伤