capacity:buffer陣列的長度,容量
limit:buffer的可操作範圍
mark:
position:當前的位置,下標 ,get,put獲取buffer資料
get():方法,put方法
clean()方法:
filp()方法:固定狀態,當前範圍的資料不允許進行寫入操作,只允許讀操作,詳細理解如下圖:
每次buffer的filp()的操作後,limit = position,position = 0,可操作範圍limit變成了當前position的位置,而position重新回到了0,當position = limit時,就不能再操作了,到達了操作極限。
0<=position<=limit<=capacity
NIO主要原理
nio主要原理 nio 有乙個主要的類selector,這個類似乙個觀察者,只要我們把需要探知的socketchannel告訴selector,我們接著做別的事情,當有事件發生時,他會通知我們,傳回一組selectionkey,我們讀取這些key,就會獲得我們剛剛註冊過的socketchannel,...
Nio程式設計詳解
nio程式設計 1.傳統的網路程式設計 在tcp協議中,呼叫accept函式時,會阻塞在那裡,而且每次都需要建立乙個新的執行緒來處理該連線,用這種方式當連線數較多時會產生大量的執行緒,而執行緒之間的切換需要耗費資源,上限較低。2.所以我們需要引入nio 非阻塞io程式設計 nio程式設計的實現方式 ...
詳解NIO如何實現群聊?
構建selector以及服務端監聽 通道啟動監聽並處理建立連線請求 處理讀資料 資料 實現客戶端測試 服務端的主要功能如下 1.開放監聽埠,方法chatserver構造方法 2.處理鏈結請求,方法listener實現連線的建立 3.讀取訊息內容,方法readdata 當chatserver物件被建立...