Reactor是并发编程中的一种设计模式,它主要是用于派发/分离IO操作事件。这里所谓的IO事件也就是诸如read/write的IO操作。"派发/分离"就是将单独的IO事件通知到上层模块。了解Reactor模式的起源是因为看redis的代码,对其中网络处理部分的精巧处理感觉叹服,上网一查才知道原来其中用到了Reactor模式。
Reactor模式处理网络事件一般按照以下方式进行:
* 声明对于感兴趣的网络事件的处理接口(event_handler)。
* 事件多路分发器等待事件发生(select/epoll)。
* 当有事件触发时,程序调用注册好event_handler去处理对应事件。
* event_handler调用实际的I/O操作,当有连接到达,则将其加入到I/O events中。
以下用C++代码简单的描述一下Reactor模式。
当然我们必须派生event_handler,实现具体的事件处理逻辑,上述的代码才能起作用。
posted on 2011-01-05 13:30 北飞 阅读(906) 评论(0) 编辑 收藏 引用
Powered by: C++博客 Copyright © 北飞