nio基於reactor,當socket有流可讀或可寫入socket時,作業系統會相應的通知引用程式進行處理,應用再將流讀取到緩衝區或寫入作業系統。 也就是說,這個時候,已經不是乙個連線就要對應乙個處理執行緒了,而是有效的請求,對應乙個執行緒,當連線沒有資料時,是沒有工作執行緒來處理的。
bio與nio乙個比較重要的不同,是我們使用bio的時候往往會引入多執行緒,每個連線乙個單獨的執行緒;而nio則是使用單執行緒或者只使用少量的多執行緒,每個連線共用乙個執行緒。
同步非阻塞,伺服器實現模式為乙個請求乙個執行緒,即客戶端傳送的連線請求都會註冊到多路復用器上,多路復用器輪詢到連線有i/o請求時才啟動乙個執行緒進行處理。
非阻塞式io模型
彈性伸縮能力強
單執行緒節省資源
IO與NIO網路程式設計模型
一 bio bolcking io 阻塞分析 阻塞點 1.建立服務埠 serversocket serversocket new serversocket 12345 獲取socket套接字 socket socket serversocket.accept 阻塞等待客戶端連線 2.獲取客戶端輸入流...
NIO網路程式設計
nio buffer陣列緩衝區 獲取物件 allocate int capacity allocatedirect int capacity wrap byte byte 常用方法 put 新增元素 capacity 容量 陣列的大小 position 位置 要存放元素位置,每操作乙個元素,位置就會...
網路程式設計 NIO基礎
nio核心元件 1 buffer緩衝區 buffer工作原理 bytebuffer的簡單使用 通過下面這個簡單 可以深入理解上面三個引數在每次讀或寫之後的變化 public class bufferdemo ps 關於bytebuffer 2 channel通道 客戶端socketchannel 伺...