ET模式:

因为ET模式只有从unavailable到available才会触发,所以

1、读事件:需要使用while循环读取完,一般是读到EAGAIN,也可以读到返回值小于缓冲区大小;

如果应用层读缓冲区满:那就需要应用层自行标记,解决OS不再通知可读的问题

2、写事件:需要使用while循环写到EAGAIN,也可以写到返回值小于缓冲区大小

如果应用层写缓冲区空(无内容可写):那就需要应用层自行标记,解决OS不再通知可写的问题。

LT模式:

因为LT模式只要available就会触发,所以:

1、读事件:因为一般应用层的逻辑是“来了就能读”,所以一般没有问题,无需while循环读取到EAGAIN;

如果应用层读缓冲区满:就会经常触发,解决方式如下;

2、写事件:如果没有内容要写,就会经常触发,解决方式如下。

LT经常触发读写事件的解决办法:修改fd的注册事件,或者把fd移出epollfd。

总结:

目前好像还是LT方式应用较多,包括redis、libuv等。(nginx使用ET)

LT模式的优点在于:事件循环处理比较简单,无需关注应用层是否有缓冲或缓冲区是否满,只管上报事件。缺点是:可能经常上报,可能影响性能。

最新文章

  1. 新建jfinal2.2项目并连接mysql
  2. webconfig 文件加密处理
  3. 【PowerOJ1739】 魔术球问题
  4. java web 学习 --第二天(Java三级考试)
  5. svn 命令行创建和删除 分支和tags
  6. 记忆化搜索 codevs 2241 排序二叉树
  7. Easyui Combotree问题及其相关
  8. windows下添加mysql服务
  9. java-读properties配置文件
  10. SVG 矢量图形格式
  11. Java正則表達式入门
  12. C++异常处理(Exception Handling)
  13. tomcat配置虚拟目录的步骤
  14. Android入门之简单短信发送器
  15. .NET并行计算和并发3-Invoke
  16. swoole websocket服务推送
  17. FFmpeg 将YUV数据转RGB
  18. SpringBoot学习笔记(6) SpringBoot数据缓存Cache [Guava和Redis实现]
  19. 配置方案:Redis持久化RDB和AOF
  20. python新手第一天学习笔记-python循环控制和第一个python小游戏

热门文章

  1. css中滚动条样式的设置
  2. asp.net mvc 接入美圣短信 验证码发送
  3. Java基础---IO(二)--File类、Properties类、打印流、序列流(合并流)
  4. 【NOIP2014】子矩阵
  5. Android检查更新下载安装
  6. app端性能测试笔记
  7. C++中4个类型转换相关的关键字/特点/应用场合
  8. 编译安装LAMP并实现wordpress
  9. SQL Server 常用操作XML
  10. Linux-kill命令(11)