Java NIO简介

 

Java NIO: Channels and Buffers(通道和缓冲区)

       标准的IO是基于字节流和字符流进行操作的,而NIO是基于通道(Channel)和缓冲区(Buffer)进行操作,数据总是从通道读取到缓冲区中,或者从缓冲区写入到通道中。

常用的Channels和Buffers:

  • FileChannel
  • DatagramChannel
  • SocketChannel
  • ServerSocketChannel
  • ByteBuffer
  • CharBuffer
  • DoubleBuffer
  • FloatBuffer
  • IntBuffer
  • LongBuffer
  • ShortBuffer


    Java NIO引入了选择器的概念,选择器用于监听多个通道的事件(比如:连接打开,数据到达)。因此,单个的线程可以监听多个数据通道。

     Selector允许单线程处理多个 Channel。如果你的应用打开了多个连接(通道),但每个连接的流量都很低,使用Selector就会很方便。例如,在一个聊天服务器中。

 

 

http://blog.jobbole.com/88984/这篇是“一个故事讲清NIO,故事大致就是在“每一个步骤”都尽量减少一对一等待的冗余时间,设置专职人员只做某一方面工作。

下面是大致流程图:

Java NIO简介_第1张图片

 

 

 

 

 

你可能感兴趣的:(Java NIO简介)