zoukankan      html  css  js  c++  java
  • IO



    IO模型

    bio

    • 同步阻塞,每个io占用一整个线程,直到获取结果
    • 阻塞IO的方式,一个连接消耗一个线程,开发简单但并发时消耗大

    nio:

    • 同步非阻塞,轮询的方式,selector反复询问结果
    • 非阻塞IO的方式,基于事件驱动,reactor(反应器,反应堆)模式,jdk1.4后

    aio:

    • 异步非阻塞,操作系统获取结果,通过回调告知
    • 异步IO,采用proactor(前摄机)模式,jdk1.7后

    netty:nio的使用者


    框架

    • MINA
    • Netty(nio)

    引用

    所谓事件驱动,简单地说就是你点什么按钮(即产生什么事件),电脑执行什么操作(即调用什么函数).当然事件不仅限于用户的操作. 事件驱动的核心自然是事件。从事件角度说,事件驱动程序的基本结构是由一个事件收集器、一个事件发送器和一个事件处理器组成。事件收集器专门负责收集所有事件,包括来自用户的(如鼠标、键盘事件等)、来自硬件的(如时钟事件等)和来自软件的(如操作系统、应用程序本身等)。事件发送器负责将收集器收集到的事件分发到目标对象中。事件处理器做具体的事件响应工作,它往往要到实现阶段才完全确定,因而需要运用虚函数机制(函数名往往取为类似于HandleMsg的一个名字)。对于框架的使用者来说,他们唯一能够看到的是事件处理器。这也是他们所关心的内容。


    1. https://blog.csdn.net/baidu_41931024/article/details/94432655
  • 相关阅读:
    manacher算法笔记
    2019qbxtCSP-S2 模拟题1
    三元环计数
    踩坑日记
    我的Ubuntu16.04 安装配置
    SLAM14讲项目在 mac 上无法正常运行
    平面最近点对的算法实现
    hiho 1996
    【游记】NOIP2018 退役滚粗记
    铁板铮铮♂+习题集
  • 原文地址:https://www.cnblogs.com/duduchong/p/13295053.html
Copyright © 2011-2022 走看看