• Reactor与Proactor的两篇paper


    《Reactor: An Object Behavioral Pattern for Concurrent Event Demultiplexing and Dispatching》

        这篇Paper给出了Reactor模式的定义: Reactor是一个同步的多路复用分发器,它主要由两个部分构成:一个同步的解多路复用器(Demultiplexer),一个事件分发器(Dispatcher)。事件处理程序在Dispatcher进行注册,提供一致的对外接口,这个接口就是OO的常见多态方式。

    系统工作时,

    (1) 先把感兴趣的事件源(IO通道句柄)在Demultiplexer注册;

    (2) 然后启动Demultiplexer。由于Demultiplexer是同步的,所以进入休眠状态;

    (3) 直到某几个事件源(IO通道)发生了我们感兴趣的事件;

    (4) Demultiplexer把事件送入Dispatcher;

    (5) Dispatcher调用对应的事件处理程序(Event Handler)  

        典型的同步Demultiplexer:select函数  

    《Comparing Two High-Performance I/O Design Patterns》

        这篇paper对比了Reactor和Proactor这两个模式 Reactor模式,见前文。

        Proactor模式。该模式也是两个部分:一个异步的解多路复用器(Demultiplexer),一个事件分发器。

        但是在该事件分发器中注册的Event Handler,会以后台方式被调用,主控制程序(main loop)不会感知到它的调用,直到调用完成了,它才发通知给main loop。也就是完全异步的IO。 Proactor一旦被启动,立即返回,主控制程序继续干别的事情,直到事件处理完成,它才得到通知。这是一个典型的AIO,参见《Unix Network Programming》中对IO multiplexing的描述。 Proactor的一个例子:windows的IO完成端口。    

  • 相关阅读:
    算法竞赛进阶指南--lowbit运算,找到二进制下所有是1的位
    linux
    conda配置安装pytorch
    anaconda的安装及使用
    python操作mysql
    python生成文字云
    决策树基本原理
    Ubuntu截图软件
    ubuntu安装teamviewer
    k-最近邻算法基本原理
  • 原文地址:https://www.cnblogs.com/ohscar/p/3109602.html
Copyright © 2020-2023  润新知