NIO主要原理

2021-08-31 21:54:52 字數 528 閱讀 8295

nio主要原理

nio 有乙個主要的類selector,這個類似乙個觀察者,只要我們把需要探知的socketchannel告訴selector,我們接著做別的事情,當有事件發生時,他會通知我們,傳回一組selectionkey,我們讀取這些key,就會獲得我們剛剛註冊過的socketchannel,然後,我們從這個channel中讀取資料,放心,包準能夠讀到,接著我們可以處理這些資料。

selector內部原理實際是在做乙個對所註冊的channel的輪詢訪問,不斷的輪詢(目前就這乙個演算法),一旦輪詢到乙個channel有所註冊的事情發生,比如資料來了,他就會站起來報告,交出一把鑰匙,讓我們通過這把鑰匙來讀取這個channel的內容。

當前分布式計算 web services盛行天下,這些網路服務的底層都離不開對socket的操作。他們都有乙個共同的結構:

1. read request

2. decode request

3. process service

4. encode reply

5. send reply

NIO原理詳解 二

capacity buffer陣列的長度,容量 limit buffer的可操作範圍 mark position 當前的位置,下標 get,put獲取buffer資料 get 方法,put方法 clean 方法 filp 方法 固定狀態,當前範圍的資料不允許進行寫入操作,只允許讀操作,詳細理解如下圖...

NIO客戶端主要建立過程

nio客戶端主要建立過程 socketchannel clientchannel socketchannel.open 步驟二 設定socketchannel為非阻塞模式,同時設定客戶端連線的tcp引數,示例 如下 clientchannel.configureblocking false sock...

四 NIO網路程式設計原理分析

nio 非阻塞網路程式設計相關的 selector selectionkey serverscoketchannel和socketchannel 關係梳理圖 當客戶端連線時,會通過serversocketchannel 得到 socketchannel selector 進行監聽 select 方法...