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