1. 程式人生 > >NIO Channel Socket

NIO Channel Socket

election abs alt 定義 selector channels inf servers 技術分享

阻塞非阻塞:

NIO中的Channel主要分為兩大類:一類是FileChannel,另一類是SocketChannel。NIO提供的核心非阻塞特性主要針對SocketChannel類,全部socket通道類(DatagramChannel、SocketChannel和ServerSocketChannel)都是由位於java.nio.channels.spi包中的AbstractSelectableChannel引申而來。這意味著我們可以用一個Selector對象來執行socket通道的有條件的選擇(readiness selection)。

SelectableChannel抽象類提供的方法:

技術分享圖片

  請註意DatagramChannel和SocketChannel實現定義讀和寫功能的接口而ServerSocketChannel不實現。ServerSocketChannel負責監聽傳入的連接和創建新的SocketChannel對象,它本身從不傳輸數據。

NIO Channel Socket