LT和ET
LT (电平触发)
在执行epoll_wait()后,LT会去遍历文件描述符去查询是否有就绪的事件,如果有,就返回,且如果事件没有处理完,还会在下次epoll_wait()时返回(用可读事件理解为,只要读缓冲区仍然有数据,LT就会被返回,也就是在高电平的状态就会触发)。
ET (边沿触发)
在执行epoll_wait()后,如果检测到有就绪事件发生,立即返回,并且如果没有执行完事件,在下次epoll_wait()也不会返回,说白了就是只在上升沿或者下降沿的时候被触发。
为什么ET模式一定要保证文件描述符是非阻塞的
上面了解到ET的特性后,我们知道,在ET模式下一定得把事件执行完,否则事件就丢掉了。那么,以可读事件举例,如果事件是阻塞的,那么从读缓冲区读完数据后,该线程必定在最后被阻塞(直到下次可读才被返回),所以,我们在使用ET模式的时候,要保证文件描述符是非阻塞的。
标签:epoll,模式,LT,事件,ET,wait From: https://www.cnblogs.com/dawnHouse/p/16780046.html