Reactor 模式

Reactor 模式

参考:https://segmentfault.com/a/1190000002715832

Reactor 模式

Reactor 模式包含几个主要的模块:

  1. Reactor:反应器,定义一个接口,实现以下功能:
    • 供应用程序注册和删除关注的事件句柄。
    • 运行事件循环
    • 有就绪事件到来时,分发事件到之前注册的回调函数上处理
  2. Handle (文件描述符)
  3. Synchronous Event Demultiplexer(多路复用,如 epoll,poll,select)
  4. Event Handler(暴露出来供程序使用的事件处理接口,可以在这些接口中实现具体的处理函数)
  5. Concrete Event Handler(实现 4 中的接口,实现应用程序所提供的特定事件处理逻辑)

反应器的工作过程:

    具体时间处理程序不调用反应器,而是由反应器分配一个具体事件来处理程序,具体事件处理程序对某个指定的事件发生做出反应,而做出这个反应动作,是应用程序之前注册到 Reactor 上的 Concrete Event Handler。

Reactor 模式

    Reactor 被动的等待指示事件的到来并做出反应,它有一个等待的过程,做什么都要先放入到监听事件集合中等待 handler 可用时再进行操作。

Reactor 模式