模拟Proactor

前面在【Reactor and Proactor】中讨论了那两种模式,因为Proactor模式需要操作系统级别的支持。所以这里看看融合Reactor和Proactor的解决方案: 使用Reactor模拟Proactor

使用Reactor模拟Proactor的思路其实很简单,就是让Reactor模式中的事件分享者在得知事件发生的时候,让事件分享者来读写数据,读写完成后把数据放到事件处理者提供的缓冲区里面。再通知事件处理者:你所关心的事件已经完成 (注意这里不是发生而是完成)。然后事件处理者就直接在自己所提供的缓冲区里面获取数据。事件处理者需要提供:用于存放读到数据的缓存区,读的数据大小,或者用于存放外发数据的缓存区,请求完后的回调函数。

猜你喜欢

转载自jishuaige.iteye.com/blog/2355719
今日推荐