标签:
随着IO多路复用技术的出现,出现了很多事件处理模式。同步I/O模型通常由Reactor模式实现,而异步I/O模型则由Proactor模式实现。
Reator类图如上所示,Reactor模式又叫反应器或反应堆,即实现注册描述符(Handle)及事件的处理器(EventHandler),当有事件发生的时候,事件多路分发器(Event Demultiplexer)做出反应,调用事件具体的处理函数(ConcreteEventHandler::handle_event())。
Reator模式的典型启动过程如下:
Reactor模式已经被广泛使用,著名的开源事件库libevent、libev、libuv都是使用Reactor模式。
Reactor模式的优点:
Reactor模式的缺点:
Reactor处理耗时长的操作(如文件I/O)会造成事件分发的阻塞,影响到后续事件的处理。
因此涉及到文件I/O相关的操作,需要使用异步I/O,即使用Proactor模式效果更佳。
两种高效的事件处理模型:Reactor模式和Proactor模式
标签:
原文地址:http://www.cnblogs.com/bitkevin/p/5724410.html