zoukankan      html  css  js  c++  java
  • Reactor模式理解

    IO读取的两个阶段:1.等待内核中数据准备   2.将数据从内核复制到进程 。 

    不同的IO模型在两个阶段有不同的情况

    Reactor模式 是处理多个客户端并发请求的事件模式。当请求到达时,服务端采用I/O多路复用策略,同步派发请求至相应的请求处理程序。

    Reactor模式的5种角色构成:

    1.handle(句柄):表示一种资源,如客户端的连接请求,数据等等

    2.Synchronous event demultiplexer(同步事件分离器):用于轮询等待事件发生,调用方调用时会阻塞,直到有事件产生。如linux的epoll,java的Selector

    3.Event handler(事件处理器):多个回调方法组成,进行业务逻辑的处理

    4.Concret Event handler(具体事件处理器):事件处理器的实现

    5.Initiation Dispatcher(初始分发器):实际就是Reactor角色,个人理解是Reactor模式中的管家。本身定义了规范,用于控制事件的调度方式。也提供了应用进行事件处理器的注册,删除。

    Reactor流程:

    1.初始化 初始分发器,将 具体事件处理器 注册进来,并将handle事件 对应

    2.初始分发器 要求每个 具体事件处理器  将对应的handle传递

    3.初始分发器 使用 同步事件分离器 同步阻塞等待事件发生

    4. 当某个handle 状态为ready,如socket变为等待读状态。 同步事件分离器 通知 初始分发器

    5.初始分发器 触发 具体事件处理器的回调方法,响应此 handle

  • 相关阅读:
    功能测试用例大全
    相对最完整的软件测试工具手册
    测试用例的评审
    黑盒测试学习笔记-(深圳文鹏)
    Llinux:ubuntu常用命令(深圳文鹏)
    HDU-4857(拓扑排序)
    HDU-3665(单源最短路)
    HDU-3661(贪心)
    HDU-2059龟兔赛跑(基础方程DP-遍历之前的所有状态)
    HDU-1047(DP-二进制状态压缩)
  • 原文地址:https://www.cnblogs.com/liumz0323/p/11341167.html
Copyright © 2011-2022 走看看