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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

Java NIO與IO的詳細(xì)區(qū)別(可不可以深入到JVM和操作系統(tǒng)來(lái)講解)

Java NIO與IO的詳細(xì)區(qū)別(可不可以深入到JVM和操作系統(tǒng)來(lái)講解)

狐的傳說(shuō) 2019-03-13 14:14:48
補(bǔ)充:查閱網(wǎng)上相關(guān)資料都說(shuō),NIO是和操作系統(tǒng)底層相關(guān)的,這就一句話(huà),不得其解;還有NIO的Selector的那個(gè)工作模式它是怎么實(shí)現(xiàn)的呢? 
查看完整描述

2 回答

?
繁華開(kāi)滿(mǎn)天機(jī)

TA貢獻(xiàn)1816條經(jīng)驗(yàn) 獲得超4個(gè)贊

內(nèi)核空間用戶(hù)空間、計(jì)算機(jī)體系結(jié)構(gòu)、計(jì)算機(jī)組成原理、…… 確實(shí)有點(diǎn)兒深?yuàn)W。

我的新書(shū)《代碼之謎》會(huì)有專(zhuān)門(mén)的章節(jié)講解相關(guān)知識(shí),現(xiàn)在寫(xiě)個(gè)簡(jiǎn)短的科普文:

就速度來(lái)說(shuō) CPU > 內(nèi)存 > 硬盤(pán)

  • I- 就是從硬盤(pán)到內(nèi)存

  • O- 就是從內(nèi)存到硬盤(pán)

第一種方式:我從硬盤(pán)讀取數(shù)據(jù),然后程序一直等,數(shù)據(jù)讀完后,繼續(xù)操作。這種方式是最簡(jiǎn)單的,叫阻塞IO。

第二種方式:我從硬盤(pán)讀取數(shù)據(jù),然后程序繼續(xù)向下執(zhí)行,等數(shù)據(jù)讀取完后,通知當(dāng)前程序(對(duì)硬件來(lái)說(shuō)叫中斷,對(duì)程序來(lái)說(shuō)叫回調(diào)),然后此程序可以立即處理數(shù)據(jù),也可以執(zhí)行完當(dāng)前操作在讀取數(shù)據(jù)。

在一起的 Java IO 中,都是阻塞式 IO,NIO 引入了非阻塞式 IO。

還有一種就是同步 IO 和異步 IO。經(jīng)常說(shuō)的一個(gè)術(shù)語(yǔ)就是“異步非阻塞”,好象異步和非阻塞是同一回事,這大概是一個(gè)誤區(qū)吧。

至于 Java NIO 的 Selector,在舊的 Java IO 系統(tǒng)中,是基于 Stream 的,即“流”,流式 IO。

當(dāng)程序從硬盤(pán)往內(nèi)存讀取數(shù)據(jù)的時(shí)候,操作系統(tǒng)使用了 2 個(gè)“小伎倆”來(lái)提高性能,那就是預(yù)讀,如果我讀取了第一扇區(qū)的第三磁道的內(nèi)容,那么你很有可能也會(huì)使用第二磁道和第四磁道的內(nèi)容,所以操作系統(tǒng)會(huì)把附近磁道的內(nèi)容提前讀取出來(lái),放在內(nèi)存中,即緩存。

(PS:以上過(guò)程簡(jiǎn)化了)

通過(guò)上面可以看到,操作系統(tǒng)是按塊 Block從硬盤(pán)拿數(shù)據(jù),就如同一個(gè)大臉盆,一下子就放入了一盆水。但是,當(dāng) Java 使用的時(shí)候,舊的 IO 確實(shí)基于 流 Stream的,也就是雖然操作系統(tǒng)給我了一臉盆水,但是我得用吸管慢慢喝。

于是,NIO 橫空出世。


查看完整回答
反對(duì) 回復(fù) 2019-04-15
?
翻過(guò)高山走不出你

TA貢獻(xiàn)1875條經(jīng)驗(yàn) 獲得超3個(gè)贊

nio 少了一次從 內(nèi)核空間 到 用戶(hù)空間的 copy.


查看完整回答
反對(duì) 回復(fù) 2019-04-15
  • 2 回答
  • 0 關(guān)注
  • 784 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

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

公眾號(hào)

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