Reactor模式和Proactor模式

     I/O复用机制依赖于一个解复用器(demultiplexor),它是一个将来自有限数量源的 I/O事件调度给合适的读写事件handler的对象。开发者登记感兴趣的具体事件并提供事件handler或者callback。事件解复用器将被请求的事件分发给事件handle
     两个引入了事件解复用器的模式叫做Reactor和Proactor。Reactor模式包含同步 I/O,而Proactor模式包含异步 I/O。在Reactor模式中,事件解引用器会等待一个文件描述符或套接字准备好读写操作时的通知事件。解复用器将这个事件传递给合适的handler,它负责执行实际的读或写。
     在Proactor模式中,正好相反,handler或者代表handler的解复用器,初始化异步的读写操作。 I/O操作本身由操作系统(OS)执行。传递给OS的参数中包括用户定义的数据buffer,OS从中取出要写的数据或放入读到的数据。事件解复用等待 I/O操作完成时的通知事件,然后将它们交付给合适的handler。比如,在Windows中,一个handler可以初始化 I/O操作,而事件解复用器可以等待IOCompletion事件。这个经典的异步模式的实现基于一个异步OS层API,我们将称这种实现为”系统层“或”真“异步,因为它完全依赖于OS来执行实际的 I/O。

猜你喜欢

转载自blog.csdn.net/jshnaoko/article/details/80168976