Reactor 模式
参考:http://www.jb51.cc/article/p-mavacgbd-a.html
Reactor 模式包含几个主要的模块:
- Reactor:反应器,定义一个接口,实现以下功能:
- Handle (文件描述符)
- Synchronous Event Demultiplexer(多路复用,如 epoll,poll,select)
- Event Handler(暴露出来供程序使用的事件处理接口,可以在这些接口中实现具体的处理函数)
- Concrete Event Handler(实现 4 中的接口,实现应用程序所提供的特定事件处理逻辑)
反应器的工作过程:
具体时间处理程序不调用反应器,而是由反应器分配一个具体事件来处理程序,具体事件处理程序对某个指定的事件发生做出反应,而做出这个反应动作,是应用程序之前注册到 Reactor 上的 Concrete Event Handler。
Reactor 被动的等待指示事件的到来并做出反应,它有一个等待的过程,做什么都要先放入到监听事件集合中等待 handler 可用时再进行操作。