Reactor 和 Proactor 模式
2013-11-28 09:10
344 查看
http://name5566.com/4175.html
参考文献列表:
http://www.artima.com/articles/io_design_patterns2.html
通常来说,I/O 多路复用机制(I/O multiplexing mechanisms)依赖于一个事件多路分用器(Event demultiplexor)。我们常见的事件多路分用器包括:Linux 的 EPOLL 和 Windows 的 IOCP(如果你使用过 IOCP 或者 EPOLL,那么会更加容易理解相关内容)。一个多路分用器分发 I/O 事件到特定的事件处理函数上。对于开发者来说,他只需要注册感兴趣的事件并且提供事件处理函数。事件多路分用器负责递交事件到事件处理函数上。和事件多路分用器相关的两个设计模式为
Proactor 和 Reactor。
Windows IOCP 使用 Proactor 模式。Proactor 模式使用异步 I/O。Proactor 的标准(典型)的工作方式是:
Proactor 等待事件
Proactor 读或写数据
Proactor 分发 I/O 完成事件到用户事件处理函数
用户处理数据
Proactor 模式下,用户在调用异步 I/O 时会传递一个 Buffer 给系统,系统进行实际的 I/O 操作并从传递给系统的 Buffer 中获取或者放入数据。
Linux EPOLL 使用 Reactor 模式。Reactor 模式使用同步 I/O(一般来说)。Reactor 的标准(典型)的工作方式是:
Reactor 等待事件
Reactor 分发可读写事件到用户事件处理函数
用户读取数据
用户处理数据
与 Proactor 模式相比,Reactor 模式下,用户有责任在收到可读写事件后进行实际的 I/O 操作。
Proactor 模式和 Reactor 模式可以相互转换,详细可以参考:http://www.artima.com/articles/io_design_patterns2.html
参考文献列表:
http://www.artima.com/articles/io_design_patterns2.html
通常来说,I/O 多路复用机制(I/O multiplexing mechanisms)依赖于一个事件多路分用器(Event demultiplexor)。我们常见的事件多路分用器包括:Linux 的 EPOLL 和 Windows 的 IOCP(如果你使用过 IOCP 或者 EPOLL,那么会更加容易理解相关内容)。一个多路分用器分发 I/O 事件到特定的事件处理函数上。对于开发者来说,他只需要注册感兴趣的事件并且提供事件处理函数。事件多路分用器负责递交事件到事件处理函数上。和事件多路分用器相关的两个设计模式为
Proactor 和 Reactor。
Proactor 模式
Windows IOCP 使用 Proactor 模式。Proactor 模式使用异步 I/O。Proactor 的标准(典型)的工作方式是:Proactor 等待事件
Proactor 读或写数据
Proactor 分发 I/O 完成事件到用户事件处理函数
用户处理数据
Proactor 模式下,用户在调用异步 I/O 时会传递一个 Buffer 给系统,系统进行实际的 I/O 操作并从传递给系统的 Buffer 中获取或者放入数据。
Reactor 模式
Linux EPOLL 使用 Reactor 模式。Reactor 模式使用同步 I/O(一般来说)。Reactor 的标准(典型)的工作方式是:Reactor 等待事件
Reactor 分发可读写事件到用户事件处理函数
用户读取数据
用户处理数据
与 Proactor 模式相比,Reactor 模式下,用户有责任在收到可读写事件后进行实际的 I/O 操作。
Proactor 模式和 Reactor 模式可以相互转换,详细可以参考:http://www.artima.com/articles/io_design_patterns2.html
相关文章推荐
- 【翻译】两种高性能I/O设计模式(Reactor/Proactor)的比较
- 高性能IO设计的Reactor和Proactor模式
- Reactor与Proactor模式
- 高性能I/O设计模式Reactor和Proactor
- 高性能I/O设计模式Reactor和Proactor
- (zt)高性能I/O设计模式Reactor和Proactor
- reactor和proactor模式
- 设计模式 reactor和proactor(转)
- Proactor和Reactor模式_继续并发系统设计的扫盲
- Reactor模式和Proactor模式
- ACE中的两种I/O多路复用模式 Reactor 和 Proactor 的比较
- 两种高性能 I/O 设计模式 Reactor 和 Proactor
- 对于观察者模式,Reactor模式,Proactor模式的一点理解
- [转]两种高性能I/O设计模式(Reactor/Proactor)的比较
- Proactor和Reactor模式_继续并发系统设计的扫盲
- Proactor和Reactor模式_继续并发系统设计的扫盲
- reactor和proactor模式
- 两种高性能I/O设计模式(Reactor/Proactor)的比较
- 【翻译】两种高性能I/O设计模式(Reactor/Proactor)的比较
- 高性能I/O设计模式Reactor和Proactor