码迷,mamicode.com
首页 > 其他好文 > 详细

阻塞IO,非阻塞IO,异步IO和非异步IO 的区别

时间:2015-05-17 23:26:19      阅读:162      评论:0      收藏:0      [点我收藏+]

标签:

   最近在研究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(包括文件和网络)。 

 

阻塞IO,非阻塞IO,异步IO和非异步IO 的区别

标签:

原文地址:http://www.cnblogs.com/drcoding/p/4510716.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!