哪个网站查食品建设好,有女人和马做网站吗,档案网站开发,wordpress 二次元一、Reactor设计模式
1、什么是Reactor设计模式#xff1f; Reactor模式是高性能I/O设计中#xff0c;常用的设计模式。其中心思想是将所有要处理的I/O事件注册到一个中心I/O多路复用器上#xff0c;同时主线程阻塞在多路复用器上#xff0c;一旦有I/O事件到来或是准备就绪…一、Reactor设计模式
1、什么是Reactor设计模式 Reactor模式是高性能I/O设计中常用的设计模式。其中心思想是将所有要处理的I/O事件注册到一个中心I/O多路复用器上同时主线程阻塞在多路复用器上一旦有I/O事件到来或是准备就绪多路复用器将返回并将相应I/O事件分发到对应的处理器中。Reactor是一种事件驱动机制和普通函数调用不同的是应用程序不是主动的调用某个API来完成处理恰恰相反的是Reactor逆置了事件处理流程应用程序需提供相应的接口并注册到Reactor上如果有相应的事件发生Reactor将主动调用应用程序注册的接口回调函数。 2、Reactor模式框架 Reactor模式由下面的几个组件组成事件源、Reactor框架、多路复用机制和事件处理程序Reactor模型UML如下图 事件源代表操作系统管理的资源如Linux文件描述符例如I/O事件信号定时器。Reactor框架事件管理者提供事件注册、注销事件、事件循环以及当事件处于就绪状态调用事件注册的回调等能力。对应到libevent中就是event_base结构体。多路复用机制 系统提供select、poll、epoll等I/O多路复用机制libevent使用结构体eventop进行了封装以统一的接口来支持这些I/O多路复用机制达到了对外隐藏底层系统机制的目的。事件处理程序负责事件的处理对应到libevent中就是event结构体。
3、Reactor模式的优点 响应快不必为单个同步事件所阻塞虽然Reactor本身依然是同步的同步等待事件到来 编程相对简单可以最大程度的避免复杂的多线程及同步问题并且避免了多线程/进程的切换开销 可扩展性可以方便的通过增加Reactor实例个数来充分利用CPU资源 可复用性reactor框架本身与具体事件处理逻辑无关具有很高的复用性