标签:
最近在研究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(包括文件和网络)。
标签:
原文地址:http://www.cnblogs.com/drcoding/p/4510716.html