一、初探
1、概念:非阻塞的IO多路複用機制,跟傳統 I/O差別如下
2、原理
- Channel(通道):表示爲一個已經建立好的支持I/O操作的實體(如文件和網絡)的連接,Channel和IO中的Stream(流)是差不多一個等級的。只不過Stream是單向的,譬如:InputStream/OutputStream,而Channel是雙向的,既可以用來進行讀操作,又可以用來進行寫操作。NIO中的Channel的主要實現有:FileChannel、DatagramChannel、SocketChannel、ServerSocketChannel。分別可以對應文件IO、UDP和TCP(Client和Server)
- Buffer(緩衝區):NIO中的關鍵Buffer實現有:ByteBuffer, CharBuffer, DoubleBuffer, FloatBuffer, IntBuffer, LongBuffer, ShortBuffer,分別對應基本數據類型: byte, char, double, float, int, long, short。當然NIO中還有MappedByteBuffer, HeapByteBuffer, DirectByteBuffer
- Selector:一個專門的選擇器來同時對多個Socket通道進行監聽(輪詢或阻塞),當其中的某些Socket通道上有它感興趣的事件發生時,這些通