下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第JavaIO模型中的BIO,NIO和AIO詳解目錄一、I/O模型1.1I/O模型基本說明1.2Java支持的3種網(wǎng)絡(luò)編程I/O模式1.3JavaBIO(同步阻塞)1.4JavaNIO(同步非阻塞)1.5JavaAIO(異步非阻塞)二、BIO、NIO、AIO適用場景分析2.1BIO應(yīng)用場景2.2NIO應(yīng)用場景2.3AIO應(yīng)用場景總結(jié)
一、I/O模型
1.1I/O模型基本說明
I/O模型的簡單理解:I/O模型就是用什么樣的通道進(jìn)行數(shù)據(jù)的發(fā)送和接受,很大程度上決定了程序通信的性能
1.2Java支持的3種網(wǎng)絡(luò)編程I/O模式
Java共支持3種網(wǎng)絡(luò)編程模型I/O模式:BIO、NIO、AIO
1.3JavaBIO(同步阻塞)
JavaBIO:傳統(tǒng)的阻塞模式
同步且阻塞(傳統(tǒng)阻塞性),服務(wù)器實(shí)現(xiàn)模式為一個(gè)連接一個(gè)服務(wù)器,即客戶端有連接請求時(shí)服務(wù)器就需要啟動(dòng)一個(gè)線程進(jìn)行處理,如果這個(gè)連接不做任何事情會(huì)造成不必要的線程開銷
下圖為BIO簡單執(zhí)行流程
傳統(tǒng)的阻塞式
BIO的缺點(diǎn)是客戶端一直在連接服務(wù)器,服務(wù)器會(huì)為每一個(gè)客戶端開辟一個(gè)線程對客戶端處理,但有時(shí)客戶端不是一直對服務(wù)器進(jìn)行IO操作的,所以這樣會(huì)導(dǎo)致服務(wù)器阻塞,進(jìn)而對服務(wù)器產(chǎn)生很多不必要的線程開銷,資源浪費(fèi)
1.4JavaNIO(同步非阻塞)
JavaNIO:同步非阻塞
同步非阻塞,服務(wù)器實(shí)現(xiàn)模式為一個(gè)線程處理多個(gè)請求(連接),即客戶端發(fā)送的連接請求都會(huì)注冊到多路復(fù)用器上(Selector),多路復(fù)用輪詢到連接有I/O請求就進(jìn)行處理
下圖為NIO簡單執(zhí)行流程
NIO的優(yōu)點(diǎn)
由于客戶端不是一直對服務(wù)器進(jìn)行IO操作的,所以通過Selector選擇器進(jìn)行輪詢,均勻分配到需要對服務(wù)器進(jìn)行IO操作的客戶端,這樣就利用了客戶端閑置的時(shí)間來節(jié)省服務(wù)器內(nèi)存的消耗
當(dāng)然,如果客戶端數(shù)量增大,服務(wù)器就要再開一個(gè)Thread連接Selector進(jìn)行輪詢分配,以此類推,這樣就充分的減少內(nèi)存消耗
1.5JavaAIO(異步非阻塞)
JavaAIO:異步非阻塞
異步非阻塞,AIO引入異步通道的概念,采用了Proactor模式,簡化了程序編寫,有效的請求才啟動(dòng)線程,它的特點(diǎn)是先由操作系統(tǒng)完成后才通知服務(wù)端程序啟動(dòng)線程去處理,一般適用于連接數(shù)較多且連接時(shí)間較長的應(yīng)用
AIO目前并沒有得到廣泛的應(yīng)用
AIO和操作系統(tǒng)有非常密切的關(guān)系
我們就不再進(jìn)行畫圖講解了,AIO了解即可
二、BIO、NIO、AIO適用場景分析
2.1BIO應(yīng)用場景
BIO方式適用于連接數(shù)目比較少且固定的架構(gòu),這種方式對服務(wù)器資源要求比較高,并發(fā)局限于應(yīng)用中,JDK1.4以前的唯一選擇,但程序簡單易理解
2.2NIO應(yīng)用場景
NIO方式適用于連接數(shù)目較多且連接比較短(輕操作)的架構(gòu),比如聊天服務(wù)器,彈幕系統(tǒng),服務(wù)器間通訊等,編程比較復(fù)雜,JDK1.4開始支持
2.3AIO應(yīng)用場景
AIO方式使用于連接數(shù)目較多且連接時(shí)間較長(重操作)的架構(gòu),比如相冊服務(wù)器,充分調(diào)用OS操作系統(tǒng)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 安全標(biāo)準(zhǔn)化生產(chǎn)責(zé)任制度
- 生產(chǎn)安全考核與獎(jiǎng)勵(lì)制度
- 生產(chǎn)車輛全過程管理制度
- 生產(chǎn)場所巡檢制度范本
- 企業(yè)生產(chǎn)檔案管理制度
- 生產(chǎn)副班長生產(chǎn)管理制度
- 2026重慶市涪陵區(qū)武陵山鎮(zhèn)人民政府招聘公益性崗位1人參考考試題庫附答案解析
- 生產(chǎn)車間防蠅蟲制度
- 生產(chǎn)函數(shù)與科學(xué)制度
- 先進(jìn)生產(chǎn)班組管理制度
- 腎囊腫護(hù)理查房要點(diǎn)
- 2025年掛面制造行業(yè)研究報(bào)告及未來發(fā)展趨勢預(yù)測
- 7.1《集體生活成就我》課件 2025-2026道德與法治七年級上冊 統(tǒng)編版
- 艾媒咨詢2025年中國新式茶飲大數(shù)據(jù)研究及消費(fèi)行為調(diào)查數(shù)據(jù)
- 遼寧省錦州市2024-2025學(xué)年八年級下學(xué)期期末物理試題(含答案)
- 頂管施工臨時(shí)用電方案
- 廣東省惠州市高三上學(xué)期第一次調(diào)研考英語試題-1
- 瀘州老窖釀酒有限責(zé)任公司釀酒廢棄物熱化學(xué)能源化與資源化耦合利用技術(shù)環(huán)評報(bào)告
- 單位微信群規(guī)定管理制度
- 公司人員服從管理制度
- 床上護(hù)理洗頭課件
評論
0/150
提交評論