NIO,BIO,AIO,IO的區別

io 與 Nio 區別

  1. io 面向不會對數據進行緩衝,因此很難對數據進行處理
    Nio 面向緩衝,可以對數據進行處理
  2. io 是阻塞的,Nio 是非阻塞
  3. io 沒有選擇器
    Nio 有選擇器,可以利用一個線程監視多個通道,這個線程就是選擇器

NIO,BIO,AIO 的區別

BIO : 同步並阻塞,服務器實現模式爲一個連接一個線程,即客戶端有連接請求時服務器
端就需要啓動一個線程進行處理,如果這個連接不做任何事情會造成不必要的線程開銷,當
然可以通過線程池機制改善。適用於連接數目比較小且固定的架構。
NIO : 同步非阻塞,服務器實現模式爲一個請求一個線程,即客戶端發送的連接請求都會
註冊到多路複用器上,多路複用器輪詢到連接有 I/O 請求時才啓動一個線程進行處理。連接
數目多且連接比較短(輕操作)的架構,比如聊天服務器,
AIO: 異步非阻塞,服務器實現模式爲一個有效請求一個線程,客戶端的 I/O 請求首先要
獲得一個 IO 權限再通知服務器應用去啓動線程進行處理,使用於連接數目多且連接比較長(重操作)的架構,比如相冊服務器

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