epoll_wait返回结果?

一叶舟troy 发布于 2016/03/02 13:56
阅读 444
收藏 0


问题:
   0.1ms  s ocket a 过来一起个请求 a
   0.2ms   socket b 过来一起个请求 b  
   epoll_wait返回几次,返回结果是什么

这个我不懂epoll原理 里面过程是如何呢 还是跟et和lt有关系呀?

我理解只要检测事件 麻烦就返回 返回两次 每次返回事件是1 理解正确吗?

加载中
0
xpbob
xpbob
这个看你代码的执行速度,加入你代码里处理请求很复杂,那么就会收到2个,如果很简单,那么一次收到1个,epoll就是相应通知,就是对内核而言,他检测的这段时间有几个socket连接,那么就是返回几
0
xpbob
xpbob
et和lt应该是一个是响应没有被处理,那么下次还会有它,一个是这次不处理,下次就丢了
0
dongfuye
dongfuye

通常情况下,epoll_wait会先返回一次,里面有socket a为ready,处理过程中,你会读取a里的数据,并处理。处理完之后,你会再次调用epoll_wait,这时会再返回一次,里面socket b为ready。

lt 是指epoll_wait返回socket a为ready,如果你不读取a中的数据,那么下一个epoll_wait还会返回a为ready,对于et,则第二次调用不再返回a为ready

0
一叶舟troy
一叶舟troy
都有可能 
返回顶部
顶部