在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/Java  Linux/ 怎么理解"Tomcat NIO方式適用于連接數(shù)目多且連接比較短的連接,

怎么理解"Tomcat NIO方式適用于連接數(shù)目多且連接比較短的連接,AIO方式使用于連接數(shù)目多且連接比較長的連接"?

NIO方式適用于連接數(shù)目多且連接比較短(輕操作)的架構(gòu),比如聊天服務(wù)器,并發(fā)局限于應(yīng)用中

AIO方式使用于連接數(shù)目多且連接比較長(重操作)的架構(gòu),比如相冊服務(wù)器,充分調(diào)用OS參與并發(fā)操作


這兩段話如何理解?

回答
編輯回答
葬憶

NIO是同步的,它需要tomcat去輪詢。連接多且短的時候,輪詢效率較高,但如果大多數(shù)連接耗時都比較長,則會增加輪詢開銷,空耗很多cpu周期。

AIO是異步的,無需輪詢,但需要操作系統(tǒng)參與,因此如果連接多而短,就會在內(nèi)核和用戶態(tài)之間頻繁切換,性能反而不如輪詢。

做個比喻。你做實(shí)驗(yàn)需要取各種材料和器材。如果東西很多并且取一次需要花費(fèi)的時間比較長(倉庫在樓下甚至在實(shí)驗(yàn)室外面),這時候你肯定選擇讓你的助手幫你取。這個助手就類似于AIO中操作系統(tǒng)的角色。

但是如果東西同樣很多,但就在旁邊的架子上并且分門別類地放好了,很容易取到,這時候你雖然還是可以讓助手幫你取,但很有可能還不如你自己取方便,尤其是東西的名字很長很拗口,與助手溝通都需要花費(fèi)不少時間的情況下(類比用戶態(tài)與系統(tǒng)態(tài)切換的開銷大這一事實(shí))

2017年4月8日 07:13