epoll 的 EPOLLET 和 EPOLLLT

用了下 epoll,顺便了解了一下 EPOLLET 和 EPOLLLT

EPOLLLT 是默认行为,基本上就是说,只要一个文件描述符处于就绪状态,epoll 就会不停的通知你有事件发生。传统的 select/poll 都是这样的

EPOLLET 是新的方式,只在一个文件描述符新处于就绪的时候通知一次,之后不管数据有没有读完,都不会再通知,当然,有新数据到还是会通知的。所以,用 EPOLLET 的时候,一定要把文件描述符设置为 non-blocking,而且最好是一直读数据,读到返回 EAGAIN 才停下

个人理解,EPOLLLT 像拉稀,只要没拉干净,你总会被通知;EPOLLET 像正常拉屎,只要你愿意,拉到一半也可以穿裤子走人,直到下一轮的屎来了又被通知一下。

你可能感兴趣的:(epoll 的 EPOLLET 和 EPOLLLT)