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的互相读取使用的方法未研究清楚