epoll有EPOLLLT和EPOLLET两种触发模式,LT是默认的模式,ET是“高速”模式。LT模式下,只要这个fd还有数据可读,每次 epoll_wait都会返回它的事件,提醒用户程序去操作,而在ET(边缘触发)模式中,它只会提示一次,直到下次再有数据流入之前都不会再提示了,无 论fd中是否还有数据可读。所以在ET模式下,read一个fd的时候一定要把它的buffer读光,也就是说一直读到read的返回值小于请求值,或者 遇到EAGAIN错误。
epoll水平触发边缘触发
最新推荐文章于 2025-01-22 08:13:03 发布
本文详细介绍了epoll的两种触发模式:水平触发(LT)与边缘触发(ET)。LT模式下,只要文件描述符还有数据可读,epoll_wait每次都会返回其事件;而ET模式仅在数据首次到达时触发事件,此后直至新的数据到来前不再触发。使用ET模式时,需确保每次读取完全清空缓冲区。
981

被折叠的 条评论
为什么被折叠?



