NIO

2017-03-22  本文已影响11人  sunyuan1125

1 NIO主要有三大核心部分:Channel(通道),Buffer(缓冲区), Selector

2 Selector(选择区)用于监听多个通道的事件(比如:连接打开,数据到达)。因此,单个线程可以监听多个数据通道

3 NIO的非阻塞模式: 线程通常将非阻塞IO的空闲时间用于在其它通道上执行IO操作,所以一个单独的线程现在可以管理多个输入和输出通道(channel)

4 Channel是双向的,既可以用来进行读操作,又可以用来进行写操作

5 FileChannel 文件

DatagramChannel UDP

SocketChannel  TCP 

ServerSocketChannel TCP 

6 NIO中的关键Buffer实现有:ByteBuffer, CharBuffer, DoubleBuffer, FloatBuffer, IntBuffer, LongBuffer, ShortBuffer,分别对应基本数据类型: byte, char, double, float, int, long, short。当然NIO中还有MappedByteBuffer, HeapByteBuffer, DirectByteBuffer

7  flip()方法将Buffer从写模式切换到读模式

8 buffer和channel的互相读取使用的方法未研究清楚

上一篇下一篇

猜你喜欢

热点阅读