Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
branch: master
Fetching contributors…

Cannot retrieve contributors at this time

27 lines (8 sloc) 0.795 kb

多路复用的事件分粒器

reactor

时间事件

文件事件

Redis 处理的比较巧妙。先执行 aeSearchNearestTimer 确定距离下次时间事件执行还有多少时间,假设第一次执行直到下次时间事件还有100ms,先执行文件事件,epool_wait 的超时时间就设置为 100ms,如果 10ms后,有网络交互后经过一系列的处理后消耗 20ms,该次循环结束。aeSearchNearestTimer 会再次计算距离下次时间事件的间隔为 100 - 10 - 20 = 70ms,于是 epoll_wait 的超时时间为 70ms,70ms之内如果没有处理文件事件,则执行时间事件。这样即保证了即时处理文件事件,在文件事件处理完毕后又能按时处理时间事件。

其它的第三方库

libevent

libev

Jump to Line
Something went wrong with that request. Please try again.