zoukankan      html  css  js  c++  java
  • reactor与proactor模式

    首先来看看Reactor模式,Reactor模式应用于同步I/O的场景。我们以读操作为例来看看Reactor中的具体步骤:

    读取操作:

    1. 应用程序注册读就需事件和相关联的事件处理器

    2. 事件分离器等待事件的发生

    3. 当发生读就需事件的时候,事件分离器调用第一步注册的事件处理器

    4. 事件处理器首先执行实际的读取操作,然后根据读取到的内容进行进一步的处理

    下面我们来看看Proactor模式中读取操作和写入操作的过程:

    读取操作:

    1. 应用程序初始化一个异步读取操作,然后注册相应的事件处理器,此时事件处理器不关注读取就绪事件,而是关注读取完成事件,这是区别于Reactor的关键。

    2. 事件分离器等待读取操作完成事件

    3. 在事件分离器等待读取操作完成的时候,操作系统调用内核线程完成读取操作,并将读取的内容放入用户传递过来的缓存区中。这也是区别于Reactor的一点,Proactor中,应用程序需要传递缓存区。

    4. 事件分离器捕获到读取完成事件后,激活应用程序注册的事件处理器,事件处理器直接从缓存区读取数据,而不需要进行实际的读取操作。


    Proactor中写入操作和读取操作,只不过感兴趣的事件是写入完成事件。

  • 相关阅读:
    整数反转
    两数之和
    设计模式-备忘录模式
    设计模式-迭代器模式
    设计模式-中介者模式
    设计模式-观察者模式
    C# OpenFileDialog和SaveFileDialog的常见用法
    SQL数据库表结构的修改(sql2005)
    C# 时间格式处理
    C# 集合类(四)
  • 原文地址:https://www.cnblogs.com/charlesblc/p/6486853.html
Copyright © 2011-2022 走看看