epool EPOLLLT模式和EPOLLET模式

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了epool EPOLLLT模式和EPOLLET模式相关的知识,希望对你有一定的参考价值。

EPOLLLT是系统默认模式,如果监听的socket链接,只要socket缓存有数据,就触发EPOLLIN,同样只要发送缓存有空间,都会有持续不间断的EPOLLOUT通知。

EPOLLET 在接收数据时, 如果有数据只会通知一次, 假如read时未读完数据,那么不会再有EPOLLIN的通知了, 直到下次有新的数据到达时为止; 当发送数据时, 如果发送缓存未满也只有一次EPOLLOUT的通知, 除非你把发送缓存塞满了, 才会有第二次EPOLLOUT通知的机会, 所以在此方式下read和write时都要处理好。

PS:如果将一个socket描述符添加到两个epoll中, 那么即使在EPOLLET模式下, 只要前一个epoll_wait时,未读完, 那么后一个epoll_wait事件时, 也会得到读的通知, 但前一个读完的情况下, 后一个epoll就不会得到读事件的通知。

http://blog.csdn.net/lrh406317290/article/details/8755126

以上是关于epool EPOLLLT模式和EPOLLET模式的主要内容,如果未能解决你的问题,请参考以下文章

Reactor模式

Reactor模式

python的epoll及EPOLLLT

epoll 模型测试

epool如何高效

使用 pyev 的 epool 或从 Python 中的 stdlib 中选择?