Reactor/Proactor模式

2018-05-08  本文已影响0人  李昂的数字之旅

Reactor(反应器)/Proactor(前摄器)是多路复用方案之一,有点像观察者模式,都是通过注册然后等待通知的方式处理事件,
区别在于,观察者将自己直接注册到被观察对象上,而Reactor模式是将观察者注册到公共对象上,通过公共对象去监听被观察对象发出的事件。

Reactor示意图图

缺点


Reactor是在事件准备就绪时通知Event Handler,所以Handler得到消息后,还需要去读写数据;Proactor是在IO数据准备就绪时通知Event Handler,所以Handler在接收到消息后,就能直接处理数据。
这么看,Reactor像一个廉价保姆,她会提醒你该吃饭了,但并不不会帮你做好饭;Proactor是个高级保姆,她会按照你的要求,把饭做完再通知你该吃饭了。主要区别是,在通知你的时候,饭是不是已经做好了。
自然廉价保姆功能比较简单,高级保姆功能更先进点,先进的代价就是要付出更多的酬劳(系统支持该特性)


流程区别

Reactor

  1. 注册监听(用户)
  2. 事件就绪(Reactor)
  3. 读取IO数据(用户)
  4. 处理数据(用户)

Proactor

  1. 注册监听(用户)
  2. 事件就绪(Proactor)
  3. 读取IO数据(Proactor)
  4. 处理数据(用户)
    可以看出他们主要区别在,读取IO是交个谁来做,或者说用户得到通知的时候数据是否就绪了。
上一篇 下一篇

猜你喜欢

热点阅读