BIO、AIO、NIO

BIO


Blocking IO:同步阻塞,一個線程一個連接,一個請求就需要一個線程。如果連接不做讀寫,那麼線程就會閒置。線程的開銷大。

優點及應用場景:適用於連接數目小且固定的架構。對服務器的資源要求較高,併發侷限與應用中。但簡單易於理解。

NIO


Non-Blocking IO:同步非阻塞,一個請求一個線程,但連接請求都是先註冊到多路複用器上,多路複用器輪詢到連接有IO請求時才啓動一個線程處理。

在這裏插入圖片描述
優點及應用場景:適用於連接數目多且連接時間短的架構,如聊天服務器、彈幕系統、分佈式系統通信。

三大核心組件:selector、channel、buffer

線程通過selector 來處理多個通道
面向緩衝區編程,channel和client不直接操作,而是通過緩衝區來進行操作。

AIO

Asynchronous I/O:異步非阻塞,一個有效請求一個線程,客戶端的IO請求都由OS先完成了再通知服務器去啓動線程處理。

優點及應用場景:適用於連接數目比較多且長的架構,如相冊服務器。

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