欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

Java NIO(四)Scatter/Gather

系統(tǒng) 1827 0
Java NIO開始支持scatter/gather,scatter/gather用于描述從Channel中讀取或者寫入到Channel的操作。

分散(scatter)從Channel中讀取是指在讀操作時(shí)將讀取的數(shù)據(jù)寫入多個(gè)buffer中。因此,Channel將從Channel中讀取的數(shù)據(jù)“分散(scatter)”到多個(gè)Buffer中。

聚集(gather)寫入Channel是指在寫操作時(shí)將多個(gè)buffer的數(shù)據(jù)寫入同一個(gè)Channel,因此,Channel 將多個(gè)Buffer中的數(shù)據(jù)“聚集(gather)”后發(fā)送到Channel。

scatter / gather經(jīng)常用于需要將傳輸?shù)臄?shù)據(jù)分開處理的場(chǎng)合,例如傳輸一個(gè)由消息頭和消息體組成的消息,你可能會(huì)將消息體和消息頭分散到不同的buffer中,這樣你可以方便的處理消息頭和消息體。

Scattering Reads
Scattering Reads是指數(shù)據(jù)從一個(gè)channel讀取到多個(gè)buffer中。如下圖描述:
Java NIO(四)Scatter/Gather
代碼示例如下:
    
ByteBuffer header = ByteBuffer.allocate(128);
ByteBuffer body   = ByteBuffer.allocate(1024);
ByteBuffer[] bufferArray = { header, body };
channel.read(bufferArray);

  


注意buffer首先被插入到數(shù)組,然后再將數(shù)組作為channel.read() 的輸入?yún)?shù)。read()方法按照buffer在數(shù)組中的順序?qū)腸hannel中讀取的數(shù)據(jù)寫入到buffer,當(dāng)一個(gè)buffer被寫滿后,channel緊接著向另一個(gè)buffer中寫。

Scattering Reads在移動(dòng)下一個(gè)buffer前,必須填滿當(dāng)前的buffer,這也意味著它不適用于動(dòng)態(tài)消息(譯者注:消息大小不固定)。換句話說,如果存在消息頭和消息體,消息頭必須完成填充(例如 128byte),Scattering Reads才能正常工作。

Gathering Writes

Gathering Writes是指數(shù)據(jù)從多個(gè)buffer寫入到同一個(gè)channel。如下圖描述:
Java NIO(四)Scatter/Gather
代碼示例如下:
    
ByteBuffer header = ByteBuffer.allocate(128);
ByteBuffer body   = ByteBuffer.allocate(1024);
//write data into buffers
ByteBuffer[] bufferArray = { header, body };
channel.write(bufferArray);

  

buffers數(shù)組是write()方法的入?yún)ⅲ瑆rite()方法會(huì)按照buffer在數(shù)組中的順序,將數(shù)據(jù)寫入到channel,注意只有position和limit之間的數(shù)據(jù)才會(huì)被寫入。因此,如果一個(gè)buffer的容量為128byte,但是僅僅包含58byte的數(shù)據(jù),那么這58byte的數(shù)據(jù)將被寫入到channel中。因此與Scattering Reads相反,Gathering Writes能較好的處理動(dòng)態(tài)消息。

Java NIO(四)Scatter/Gather


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 国产一级特黄aa大片免费 | 国产黄色在线观看 | 久久亚洲国产精品无码一区 | 特级全黄一级毛片免费 | 亚洲一区二区三区视频 | 久久亚洲精品国产精品婷婷 | 国产v视频| 两性免费视频 | 久久草电影 | 天天摸夜夜摸狠狠摸夜夜摸 | 国产精品亲子伦av一区二区三区 | 一级成人生活片免费看 | 日韩视频在线观看 | 97伊人久久 | 成人免费毛片片v | 日本又黄又粗暴的gif动态图含羞 | 国产人妻互换一区二区水牛影视 | 97色伦色在线综合视频 | av在线电影网址 | 波多野一区 | 久久婷婷激情 | 天天天天天天操 | 日本不卡在线观看免费v | 国产成人精品在线 | 麻豆网址| 激情丁香六月 | 视频精品一区 | 亚洲高清不卡 | 日本在线你懂的 | 国产精品日本一区二区不卡视频 | 在线中文一区 | 久草在线成人 | 日韩在线精品 | 无码乱人伦一区二区亚洲 | 精品九九 | 国产精品99爱免费视频 | 欧美一做特黄毛片 | 电影长安道无删减免费看 | 一级午夜a毛片免费视频 | 午夜影院18 | 欧美另类视频 |