你的位置:首页 > 软件开发 > Java > JAVA NIO概述(一)

JAVA NIO概述(一)

发布时间:2016-02-22 17:00:07
NIO是jdk1.4加入的新功能,我们一般成为非阻塞IO,在1.4之前,JAVA中的都是BIO(堵塞IO),BIO有以下几个缺点:没有数据缓冲区,I/O性能存在问题没有C/C++中channel(通道)的概念,只有输入和输出流同步阻塞式I/O(BIO),通常会导致线程被长时间阻塞 ...

JAVA NIO概述(一)

NIO是jdk1.4加入的新功能,我们一般成为非阻塞IO,在1.4之前,JAVA中的都是BIO(堵塞IO),BIO有以下几个缺点:

  1. 没有数据缓冲区,I/O性能存在问题
  2. 没有C/C++中channel(通道)的概念,只有输入和输出流
  3. 同步阻塞式I/O(BIO),通常会导致线程被长时间阻塞
  4. 支持的字符集有限,硬件的可一致性不好
我们会经常听到 同步(synchronous) IO和异步(asynchronous) IO,那么阻塞(blocking) IO和非阻塞(non-blocking)IO,,同步(synchronous) IO和异步(asynchronous) IO,阻塞(blocking) IO和非阻塞(non-blocking)IO分别是什么,到底有什么区别?对于一个network IO,以read操作来举例,它会涉及到两个系统对象,1.调用这个IO的process or thread,2.系统内核(kernel),当一个read操作发生时,它会经过两个步骤:

举一个抢票的例子来说明这四个IO Model:  

 


原标题:JAVA NIO概述(一)

关键词:JAVA

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。