快速讓你區分BIO NIO AIO

2021-08-31 07:02:26 字數 635 閱讀 4100

bio: 同步並阻塞,伺服器實現模式為乙個連線乙個執行緒,即客戶端有連線請求時伺服器端就需要啟動乙個執行緒進行處理,如果這個連線不做任何事情會造成不必要的執行緒開銷,當然可以通過執行緒池機制改善

可以參閱bio.png 和偽非同步io.png

使用場景:當需要的連線數比較少的時候,單次傳送的資料量比較大的時候,

nio: 同步非阻塞,伺服器實現模式為乙個請求乙個執行緒,即客戶端傳送的連線請求都會註冊到多路復用器上,多路復用器輪詢到連線有i/o請求時才啟動乙個執行緒進行處理。

使用場景:方式適用於連線數目多且連線比較短(輕操作)的架構,比如聊天伺服器,併發侷限於應用中,程式設計比較複雜

發展歷史:jdk1.4+

aio:其實是nio.2.0版本,意思為非同步非阻塞,伺服器實現模式為乙個有效請求乙個執行緒,客戶端的i/o請求都是由os先完成了再通知伺服器應用去啟動執行緒進行處理,

使用場景:aio方式使用於連線數目多且連線比較長(重操作)的架構,比如相簿伺服器,充分呼叫os參與併發操作,程式設計比較複雜

發展歷史:jdk1.7+

小結:併發連線數不多時採用bio,因為它程式設計和除錯都非常簡單,但如果涉及到高併發的情況,應選擇nio或aio,更好的建議是採用成熟的網路通訊框架netty

讓你快速上手Runtime

1.傳送訊息 建立person物件 person p person alloc init 呼叫物件方法 p eat 本質 讓物件傳送訊息 objc msgsend p,selector eat 呼叫類方法的方式 兩種 第一種通過類名呼叫 person eat 第二種通過類物件呼叫 person cl...

讓你快速上手Runtime

1.傳送訊息 建立person物件 person p person alloc init 呼叫物件方法 p eat 本質 讓物件傳送訊息 objc msgsend p,selector eat 呼叫類方法的方式 兩種 第一種通過類名呼叫 person eat 第二種通過類物件呼叫 person cl...

幾種讓你快速增強自信的方法

很多很多的有口吃毛病的朋友都是很不自信的,都是很自卑的。他們外出走路總是低著頭,不敢看別人,不敢和別人目光交流,可以說自卑是一切人性弱點的根源。由於自卑你變得敏感 由於自卑你變得膽小懦弱 由於自卑你多愁善感 由於自卑你多疑 由於自卑你放棄機會 下面介紹六種提高自信心的方法 一 每天說句 我行 我能行...