美文网首页
java IO基础

java IO基础

作者: 降龙_伏虎 | 来源:发表于2020-01-09 21:06 被阅读0次

    1.IO即BIO

    • Input Output 以内存角度定义
      向内存中写数据Input对应方法read()
      从内存中读取数据Output对应方法write()
    image.png

    2.阻塞(Block)与非阻塞(Non-Block)的区别

    • 阻塞/非阻塞参照物为IO而非其它
    • 阻塞/非阻塞一般存在于Input读取操作中

    BIO

    • 单个通过,出一个进一个


      image.png

    NIO

    • 多个同时通过,Buffer对数据进行缓冲.通过轮询消费掉缓冲区中的数据
    image.png

    3.同步(Synchronization)和异步(Asynchronous)的区别

    • 同步
      一个'流程'开始后必须完成后才可进行下一个'流程'
      线性顺序执行

      image.png
    • 异步
      一个 流程 开始后不管是否结束.立即开启下一 流程

      image.png
    • 生活中的例子
      同步投篮球:一个篮球投出后必须看到篮球是否投中后,才开始下一次投篮
      异步投篮球:一个篮球投出后立即投出下一个不必等到第一次投篮结果确定

    4.BIO、 NIO、AIO的区别

    名称 是否同步 是否阻塞
    BIO 同步 阻塞
    NIO 同步 阻塞
    AIO 异步 非阻塞
    • JDK1.4以前使用的都是BIO
    • JDK1.4以后NIO出现,IO性能大幅度提升Netty默认使用NIO
    • JDK1.7以后出现AIO(NIO2)由于是事件驱动,操作系统的性能觉定IO的性能

    相关文章

      网友评论

          本文标题:java IO基础

          本文链接:https://www.haomeiwen.com/subject/zmkuactx.html