Reactor模式,是一种事件驱动机制
,也叫反应器模式。应用程序需要提供相应的接口并注册到Reactor上,如果相应的事件发生,Reactor将主动调用应用程序注册的接口,这些接口又称为“回调函数”。
在Libevent中也是一样,向Libevent框架注册相应的事件和回调函数;当这些事件发生时,Libevent会调用这些回调函数处理相应的事件(I/O读写、定时和信号)。
使用Reactor模型,必备的几个组件:事件源、Reactor框架、多路复用机制和事件处理程序。
Reactor模式是一种网络编程模式,因为网络IO是有阻塞的,所以常规的编程模式BIO效率很低,当一个连接阻塞了,整个服务就无法处理任何事情;于是我们有了NIO,配合上无休止的主动轮训,效率太低;于是有了IO多路复用器,使用Reactor设计模式,就可以很好的实现一个网络服务器。
libevent与Event中使用了大量的事件驱动回调,其实就是Reactor的体现。