今天开始学习Java nio的知识。学习的内容来自于以下地址:
http://tutorials.jenkov.com/java-nio/overview.html
里面有JAVA NIO的入门文章。
另外发现了一个关于并发学习的网站,对于学习并发是个比较好的选择,网址如下:
http://ifeve.com/category/concurrency-translation/
以下为chp 1的内容:
1、NIO组成
JAVA nio主要由如下三部分组成:
- Channels(管道) :第二章会提到。
- Buffers(缓存) :第三章会提到。
- Selector(管理者) :第四章会提到
2、Channels 和 Buffers
IO 与 NIO都是从 Channel开始的。 数据可以从Channel中读入并写入到Buffer中,而从Buffer读到的数
据也可以写入到Channel中。如下图:
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: A Thread uses a Selector to handle 3 Channel's