epoll 水平触发和边缘触发的区别

来源:互联网 发布:c语言从入门到精通图片 编辑:程序博客网 时间:2024/05/02 15:25
EPOLLLT——水平触发
EPOLLET——边缘触发

epoll有EPOLLLT和EPOLLET两种触发模式,LT是默认的模式,ET是“高速”模式。LT模式下,只要这个fd还有数据可读,每次 epoll_wait都会返回它的事件,提醒用户程序去操作,而在ET(边缘触发)模式中,它只会提示一次,直到下次再有数据流入之前都不会再提示了,无 论fd中是否还有数据可读。所以在ET模式下,read一个fd的时候一定要把它的buffer读光,也就是说一直读到read的返回值小于请求值,或者 遇到EAGAIN错误。
0 0