1. 程式人生 > >NIO(四)--介紹

NIO(四)--介紹

NIO的本質就是避免原始的tcp建立連線使用3次握手的操作,減少連線的開銷。

傳統的IO流(inputstream,outputstream)都是單向的管道,要麼去讀,要麼去寫。

有一個server端,有n個client端。古老的socket程式設計,是每個客戶端直接向server端發起一個套接字,建立一個tcp連線。
NIO是在傳統的tcp之上進行一個抽象。不是client端和server端直接進行連線,而是,把client的通道註冊到server端。在NIO中沒有|Socket和ServerSocket的概念。在NIO中服務端要例項化出一個ServerSocketChannel(把ServerSocket進行了一個抽象),客戶端使用SocketChannel。在Server端會建立一個Selector(多路複用器)。所有客戶端的SocketChannel都要註冊到Selector。Selector的機制是使用一個執行緒,去輪詢所有註冊到這個伺服器端的SocketChannel,根據通道的狀態,執行相關的操作。