第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

什么是NIO框架 ?

什么是NIO框架 ?

POPMUISE 2018-12-20 19:11:12
什么是NIO框架 
查看完整描述

1 回答

?
叮當(dāng)貓咪

TA貢獻(xiàn)1776條經(jīng)驗 獲得超12個贊

Java NIO框架MINA用netty性能和鏈接數(shù)、并發(fā)等壓力測試參數(shù)好于mina。

特點:
1。NIO彌補了原來的I/O的不足,它再標(biāo)準(zhǔn)java代碼中提供了高速和面向塊的I/O
原力的I/O庫與NIO最重要的區(qū)別是數(shù)據(jù)打包和傳輸方式的不同,原來的I/O以流的方式處理數(shù)據(jù),而NIO以塊的方式處理數(shù)據(jù);

2.NIO以通道channel和緩沖區(qū)Buffer為基礎(chǔ)來實現(xiàn)面向塊的IO數(shù)據(jù)處理,MINA是開源的。

JavaNIO非堵塞應(yīng)用通常適用用在I/O讀寫等方面,我們知道,系統(tǒng)運行的性能瓶頸通常在I/O讀寫,包括對端口和文件的操作上,過去,在打開一個I/O通道后,read()將一直等待在端口一邊讀取字節(jié)內(nèi)容,如果沒有內(nèi)容進(jìn)來,read()也是傻傻的等,這會影響我們程序繼續(xù)做其他事情,那么改進(jìn)做法就是開設(shè)線程,讓線程去等待,但是這樣做也是相當(dāng)耗費資源的。

Java NIO非堵塞技術(shù)實際是采取Reactor模式,或者說是Observer模式為我們監(jiān)察I/O端口,如果有內(nèi)容進(jìn)來,會自動通知我們,這樣,我們就不必開啟多個線程死等,從外界看,實現(xiàn)了流暢的I/O讀寫,不堵塞了。

Java NIO出現(xiàn)不只是一個技術(shù)性能的提高,會發(fā)現(xiàn)網(wǎng)絡(luò)上到處在介紹它,因為它具有里程碑意義,從JDK1.4開始,Java開始提高性能相關(guān)的功能,從而使得Java在底層或者并行分布式計算等操作上已經(jīng)可以和C或Perl等語言并駕齊驅(qū)。

如果至今還是在懷疑Java的性能,說明思想和觀念已經(jīng)完全落伍了,Java一兩年就應(yīng)該用新的名詞來定義。從JDK1.5開始又要提供關(guān)于線程、并發(fā)等新性能的支持,Java應(yīng)用在游戲等適時領(lǐng)域方面的機會已經(jīng)成熟,Java在穩(wěn)定自己中間件地位后,開始蠶食傳統(tǒng)C的領(lǐng)域。

原理:
NIO 有一個主要的類Selector,這個類似一個觀察者,只要我們把需要探知socketchannel告訴Selector,我們接著做別的事情,當(dāng)有事件發(fā)生時,他會通知我們,傳回一組SelectionKey,我們讀取這些Key,就會獲得我們剛剛注冊過的socketchannel,然后,我們從這個Channel中讀取數(shù)據(jù),放心,包準(zhǔn)能夠讀到,接著我們可以處理這些數(shù)據(jù)。Selector內(nèi)部原理實際是在做一個對所注冊的channel的輪詢訪問,不斷的輪詢(目前就這一個算法),一旦輪詢到一個channel有所注冊的事情發(fā)生。比如數(shù)據(jù)來了,他就會站起來報告,交出一把鑰匙,讓我們通過這把鑰匙來讀取這個channel的內(nèi)容。在使用上,也在分兩個方向,一個是線程處理,一個是用非線程,后者比較簡單。




查看完整回答
反對 回復(fù) 2019-01-13
  • 1 回答
  • 0 關(guān)注
  • 572 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號