1 reactor设计模式
1.1 意图
Reactor,即反应堆。Reactor 的一般工作过程是首先在 Reactor 中注册(Reactor)感兴趣事件,并在注册时候指定个已定义的回调函数(callback);当客户端发送请求时,在 Reactor 中会触发刚才注册的事件,并调用对应的处理函数。在这一个处理回调函数中,一般会有数据接收、处理、回复请求等操作。将多个客户的请求分离和调度给应用程序。
1.2 结构图:
- handle事件描述符,socket;文件描述符;定时器等 (可以处理io 信号量 定时器事件)
- Event-handle:具体的事件处理器 (事件抽象出来统一处理 facade模式,依据事件类型定义其优先级和相应的事件处理的方式。不同的事件使用不同的event handle,桥接模式处理)
- 同步事件分离器:demultiplexer,用现成的epoll、select实现。其中notify用于唤醒被阻塞的系统调用
- reactor管理器:用于事件的注册,删除,调度。使用单例模式实现,全局唯一。