推荐星级:
  • 1
  • 2
  • 3
  • 4
  • 5

libevent的EV_ET边缘触发事件的使用.docx

更新时间:2026-10-09 20:31:13 大小:37K 上传用户:江岚查看TA发布的资源 标签:libeventEV_ET边缘触发epoll水平触发 下载积分:2分 评价赚积分 (如何评价?) 打赏 收藏 评论(0) 举报

资料介绍

libevent 的 EV_ET:边缘触发事件的使用

水平触发与边缘触发

epoll 支持两种触发模式:水平触发(LT)和边缘触发(ET)。两者的差异,直接影响事件的处理方式。

水平触发:只要 fd 还处于就绪状态,就持续上报事件。实现简单,不容易漏事件。

边缘触发:只在 fd 状态变化时上报一次。吞吐更高,但处理复杂,容易漏事件。

libevent 默认用水平触发,但也支持边缘触发(EV_ET)。这篇文章讲 EV_ET 的使用。

libevent 的默认行为

libevent 默认采用水平触发模式。

对大多数应用,水平触发简单可靠,不需要担心漏事件。libevent 用水平触发作为默认,保证了实现的简单。

但水平触发也有代价:如果数据一直没读完,就会反复触发可读事件,可能造成忙轮询。

EV_ET 标志

libevent 通过 EV_ET 标志,支持边缘触发。

在创建事件时,设置 EV_ET 标志,事件就采用边缘触发。前提是后端支持边缘触发(epoll 支持,features 带 EV_FEATURE_ET)。

边缘触发只在状态变化时上报一次,适合"一次处理完所有就绪数据"的场景,减少不必要的重复触发。


部分文件列表

文件名 大小
libevent的EV_ET边缘触发事件的使用.docx 37K

全部评论(0)

暂无评论

上传资源 上传优质资源有赏金

  • 打赏
  • 30日榜单

推荐下载