将所有要处理的I/O事件注册到一个中心I/O多路复用器上,同时主线程阻塞在多路复用器上;一旦有I/O事件到来或是准备就绪(区别在于多路复用器是边沿触发还是水平触发),多路复用器返回并将相应I/O事件分发到对应的处理器中。

这里有三个重要的组件:

  • 多路复用器:由操作系统提供,在linux上一般是select, poll, epoll等系统调用。
  • 事件分发器:将多路复用器中返回的就绪事件分到对应的处理函数中。
  • 事件处理器:负责处理特定事件的处理函数。

核心要点

  • 监听的是IO就绪事件(proactor监听的是IO完成事件)

留言

2016-03-08