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中写入操作和读取操作,只不过感兴趣的事件是写入完成事件。

  • 相关阅读:
    程序员的困境
    linux中获取系统时间 gettimeofday函数
    Vim 模式及常用命令整理
    使用stringstream进行类型转换与字符串分割
    EasyNet开源项目计划
    用Akka构建一个简易的分布式文件系统
    SolrCloud攻略
    EasyNet.Solr 4.4.0发布及例子
    axis2调用webservice
    Oracle常用函数2查询
  • 原文地址:https://www.cnblogs.com/charlesblc/p/6486853.html
Copyright © 2011-2022 走看看