To be a better coder
分类: LINUX
2018-03-21 16:40:32
epoll对文件描述符有两种操作模式--LT(level trigger电平模式)和ET(edge trigger边缘模式)
简单来讲,LT是epoll的默认操作模式,当epoll_wait函数检测到有事件发生并将通知应用程序,而应用程序不一定必须立即进行处理,这样epoll_wait函数再次检测到此事件的时候还会通知应用程序,直到事件被处理。
而ET模式,只要epoll_wait函数检测到事件发生,通知应用程序立即进行处理,后续的epoll_wait函数将不再检测此事件。因此ET模式在很大程度上降低了同一个事件被epoll触发的次数,因此效率比LT模式高。
下面的代码对两种模式进行了对比和分析。
客户端模型发送54字节的数据到服务端,ET模式只触发一次,而LT模式要触发6次。再次证明了ET模式要比LT模式触发的次数少很多。