Java NIO框架簡要設計分析
多路複用I/O技術是操作系統的內核實現。在不同的操作系統甚至同一系列操作系統的版本中,所實現的多路複用I/O技術都是不一樣的。作爲跨平臺的Java JVM來說,要適應多種多樣的多路複用I/O技術實現方法:無論使用哪種實現方式,他們都會有“選擇器”、“通道”、“緩存”這幾個操作要素,那麼可以爲不同的多路複用I/O技術創建一個統一的抽象組,並且爲不同的操作系統進行具體的實現。Java NIO中對各種多路複用I/O的支持,主要的基礎是java.nio.channels.spi.SelectorProvider抽象類,其中的幾個主要抽象方法如下。
public abstract DatagramChannel openDatagramChannel():創建和這個操作系統匹配的UDP通道實現。
public abstract AbstractSelector openSelector():創建和這個操作系統匹配的NIO選擇器。
public abstract ServerSocketChannel openServerSocketChannel():創建和這個NIO模型匹配的服務器端通道。
public abstract SocketChannel openSocketChannel():創建和這個NIO模型匹配的TCPSocket套接字通道,用來反映客戶端的TCP連接。