概述
1、标准定义
在分布式系统尤其是服务器这一类事件驱动应用中,虽然这些请求最终会被序列化地处理,但是必须时刻准备着处理多个同时到来的服务请求。
在实际应用中,这些请求总是通过一个事件(如CONNECTOR、READ、WRITE等)来表示的。
在有 序地处理这些服务请求之前,应用程序必须先分离和调度这些同时到达的事件。为
了有效地解决这个问题,我们需要做到以下4方面:
> 为了提高系统的可测量性和反应时间,应用程序不能长时间阻塞在某个事件源上而停止对其他事件的处理,这样会严重降低对客户端的响应度。
> 为了提高吞吐量,任何没有必要的上下文切换、同步和CPU之间的数据移动都要避免。
> 引进新的服务 或 改良已有的服务都要对既有的事件分离和调度机制带来尽可能小的影响。
> 大量的应用程序代码需要隐藏在复杂的多线程和同步机制之后。
为了解决上述问题,基于事件驱动的模型广泛地应用于高性能服务器中。
Reactor 和 Proactor 是基于事件驱动,在网络编程中经常用到两种设计模式。
Reactor模式(中文称作“反应器” “反应堆”等等,称其为Reactor模式);
Proactor模式(中文也称“主动器” “前摄器”,称其为Proactor模式)。
其中Reactor模式用于同步I/O,而Proactor运用于异步I/O操作。
这两者都依赖于一个事件多路分离器(Event Demultiplexer)。
分离器对象可将来自事件源的I/O事件分离出来,并分发到对应的read/write事件处理器(Event Handler)。
开发人员预先注册需要处理的事件及其事件
最后
以上就是激情月饼为你收集整理的1.1.4 网络编程:Reactor与Proactor的概念与应用1、标准定义的全部内容,希望文章能够帮你解决1.1.4 网络编程:Reactor与Proactor的概念与应用1、标准定义所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复