Java高併發教程:詳解NIO Selector類

Java高併發教程:詳解NIO Selector類

NIO Selector

  Java NIO Selector可以檢查一個或多個Java NIO Channel實例,並確定哪些通道可供使用,例如read或write。 這樣,單個線程可以管理多個通道,從而可以管理多個網絡連接。Selector 選擇器的使命是完成IO的多路複用。一個通道代表一條連接通路,通過選擇器可以同時監控多個通道IO(輸入輸出)狀況。選擇器和通道的關係,是監控和被監控的關係。

  如下圖所示爲一個Selector同時監控3個Channel:

  

 

   選擇器提供了獨特的API方法,能夠選出Select所監控的通道擁有哪些已經準備好的,就緒的IO操作事件。可供選擇器監控的通道IO事件類型,包括以下:

  1. 可讀:SelectionKey.OP_READ
  2. 可寫:SelectionKey.OP_WRITE
  3. 連接:SelectionKey.OP_CONNECT
  4. 接收:SelectionKey.OP_ACCEPT

  判斷一個通道能否被選擇器監控或者選擇,有一個前提:判斷它是否繼承了抽象類SelectableChannel

注:IO事件指的是通道的某個IO操作的一種就緒狀態

 

參考資料

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章