zoukankan      html  css  js  c++  java
  • 阻塞IO,非阻塞IO,异步IO和非异步IO 的区别

       最近在研究java IO、NIO、NIO2(或者称AIO)相关的东西,有些概念还是要明确下。

       按照《Unix网络编程》的划分,IO模型可以分为:阻塞IO、非阻塞IO、IO复用、信号驱动IO和异步IO,按照POSIX标准来划分只分为两类:同步IO和异步IO。

    如何区分呢?首先一个IO操作其实分成了两个步骤:

     1、发起IO请求

     2、实际的IO操作

    阻塞和非阻塞IO:在于第一个步骤是否会会被阻塞,如果会则是阻塞IO,否则是非阻塞IO.

    异步和非异步(同步)IO:在于第二个步骤是否会阻塞,如果实际的IO读写阻塞请求进程,那么就是同步IO,因此阻塞IO、非阻塞IO、IO服用、信号驱动IO都是同步IO,如果不阻塞,而是操作系统帮你做完IO操作再将结果返回给你,那么就是异步IO。

      Java NIO是自jdk1.4引入的新特性,之前的IO都是阻塞的,而NIO则是非阻塞式的。

      Java NIO 2.0的主要改进就是引入了异步IO(包括文件和网络)。 

  • 相关阅读:
    斯特林反演入门
    【清华集训2016】如何优雅地求和
    布隆过滤器
    HBase体系结构
    插入排序
    Hive中的文件存储格式
    HDFS的读写流程
    AQS
    Condition接口
    HashMap源码分析
  • 原文地址:https://www.cnblogs.com/drcoding/p/4510716.html
Copyright © 2011-2022 走看看