NIO学习笔记一(概述)

      今天开始学习Java nio的知识。学习的内容来自于以下地址:

      http://tutorials.jenkov.com/java-nio/overview.html

      里面有JAVA NIO的入门文章。

      另外发现了一个关于并发学习的网站,对于学习并发是个比较好的选择,网址如下:

      http://ifeve.com/category/concurrency-translation/

      以下为chp 1的内容:

 

1、NIO组成

JAVA nio主要由如下三部分组成:

  1. Channels(管道) :第二章会提到。
  2. Buffers(缓存) :第三章会提到。
  3. Selector(管理者)  :第四章会提到

2、Channels 和 Buffers

IO 与 NIO都是从 Channel开始的。 数据可以从Channel中读入并写入到Buffer中,而从Buffer读到的数

据也可以写入到Channel中。如下图:

       Java NIO: Channels and Buffers

Java NIO: Channels read data into Buffers, and Buffers write data into Channels

 

Channel的主要实现类,涵盖了常用的文件、UDP、TCP等,主要包括以下种类:

  • FileChannel
  • DatagramChannel
  • SocketChannel
  • ServerSocketChannel

       Buffer的主要实现类,涵盖了主要的基本数据种类,如下:

  • ByteBuffer
  • CharBuffer
  • DoubleBuffer
  • FloatBuffer
  • IntBuffer
  • LongBuffer
  • ShortBuffer

3、Selectors

 Selectors允许一个线程来处理多个Channels。图形表示如下:

Java NIO: Selectors

Java NIO: A Thread uses a Selector to handle 3 Channel's

 

 

 

    

你可能感兴趣的:(NIO)