• reactor与proactor的理解


    结合asio和libevent,对reactor和proactor的理解。
    1.boost.asio模型的理解
    • asio是一个异步模型的网络库,当然也支持同步模型。
    • 在TCP异步模型编程中,重要的组件有Acceptor和Socket,当然还有最重要的io_service。
      • 可以先将io_service理解为一个黑盒子,它能够帮我们做很多事情。
      • Acceptor和Socket依赖io_service,辅助做一些事情。
      • Acceptor能够接收一个连接,该连接由一个新的Socket代表
      • Socket能够接收和发送数据
    • Acceptor和Socket是异步
      • Acceptor的连接功能,它只是告诉io_service,连接来了就调用下我注册的回调函数就ok了。
      • Socket的接收和发送功能,它也只是告诉io_servcie,发送(接收)万数据,你告诉下我的注册的回调函数就ok了。
    • 看图说话
      • Acceptor在1的时候将socket和accept_handle注册到io_service,当有连接的时候调用acceptr_handle
      • Socket发送(接收)数据,通过2注册回调函数,完成发送(接收)数据会调用回调函数
    2.reactor和proactor模型
    我的理解:
    • 定义
      • 服务器网络模型,用于提供高性能
      • 使用了I/O多路复用技术,监测注册事件,当事件发生,通知感兴趣事件者的模型
    • 相同点
      • 都使用了I/O多路复用技术
      • 都包含事件分离器和事件处理器
      • 事件分离器,两个用途,1.检测“事件处理器”关注的事件。2.事件发生时,发送事件到正确的“事件处理器”。
      • 事件处理器,一般指业务部分
    • 不同点
      • reactor使用同步I/O,proactor使用异步I/O
      • reactor关注事件就绪,proactor关注事件完成
    • asio
      • io_service就是“事件分离器”(想想io_service需要调用run)
      • Acceptor和Socket都是事件的关注者,也就是“事件处理器”
    • 如何方便理解
      • 本质上就两个东西,分离器和处理器
      • 处理器要么想读数据,要么想写数据
      • 然后分离器可以帮助处理器来做这个事情
      • 如何做的好,就是用来不同的模型
      • 以上
     
  • 相关阅读:
    美联储主席和欧洲央行说了什么
    12月CPI,PPI有哪些变化
    中国人民银行行长易纲就贯彻落实中央经济工作会议精神接受采访谈
    2018年个人的一些简单预测
    从首套房利率走势看市场
    百城价格房价周期和郑州、武汉房价比较分析
    国际非农超预期美联储主席态度软化,国内适度宽松货币+积极财政仍是主基调
    三大经济体年2018年末形势一览
    从房地产住宅销售面积增速看房地产行业
    枚举类
  • 原文地址:https://www.cnblogs.com/bluebbc/p/5129448.html
Copyright © 2020-2023  润新知