多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
[TOC] ## 水平触发 水平触发的主要特点是,如果用户在监听epoll事件,当内核有事件的时候,会拷贝给用户态事件,但是如果用户只处理了一次,那么剩下没有处理的会在下一次epoll_wait再次返回该事件。 ` ` **这样如果用户永远不处理这个事件,就导致每次都会有该事件从内核到用户的拷贝,耗费性能,但是水平触发相对安全,最起码事件不会丢掉,除非用户处理完毕。** ![](https://aceld.gitbooks.io/libevent/content/libevent-2-epoll%E8%A7%A6%E5%8F%91%E6%A8%A1%E5%BC%8F01.png) ![](https://aceld.gitbooks.io/libevent/content/libevent-2-epoll%E8%A7%A6%E5%8F%91%E6%A8%A1%E5%BC%8F02.png) ## 边缘触发 边缘触发,相对跟水平触发相反,当内核有事件到达, 只会通知用户一次,至于用户处理还是不处理,以后将不会再通知---**直到下次再有数据流入之前都不会再提示了**。这样减少了拷贝过程,增加了性能,但是相对来说,如果用户马虎忘记处理,将会产生事件丢的情况。 ## epoll应用 * redis * nginx