亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

Java NIO(四)Scatter/Gather

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

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

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

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

Scattering Reads
Scattering Reads是指數(shù)據(jù)從一個channel讀取到多個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)一個buffer被寫滿后,channel緊接著向另一個buffer中寫。

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

Gathering Writes

Gathering Writes是指數(shù)據(jù)從多個buffer寫入到同一個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)?,write()方法會按照buffer在數(shù)組中的順序,將數(shù)據(jù)寫入到channel,注意只有position和limit之間的數(shù)據(jù)才會被寫入。因此,如果一個buffer的容量為128byte,但是僅僅包含58byte的數(shù)據(jù),那么這58byte的數(shù)據(jù)將被寫入到channel中。因此與Scattering Reads相反,Gathering Writes能較好的處理動態(tài)消息。

Java NIO(四)Scatter/Gather


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

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

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

【本文對您有幫助就好】

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

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 欧美深夜在线 | 大学生一级黄色片 | 亚洲精品免费视频 | 伊人色综合网一区二区三区 | 天天射天天干天天舔 | 97久草| 久久成人亚洲香蕉草草 | 国产福利视屏 | 免费国产小视频在线观看 | 国产欧美精品专区一区二区 | 香蕉视频在线观看黄 | 爱爱夜夜爽成人夜夜爽 | 色一情 | 日本一极毛片兔费看 | 精品香蕉99久久久久网站 | 亚洲日日做天天做日日谢 | 亚洲欧美日韩国产vr在线观 | 久久国产精品一区 | 亚洲欧美一区二区久久香蕉 | 成人一级片在线观看 | 欧美精彩狠狠色丁香婷婷 | 欧美色射| 一级成人毛片免费观看 | 欧美一级毛片高清毛片 | 老司机亚洲精品影院在线 | 亚洲欧美国产精品久久久 | 亚洲精品人成无码中文毛片 | 日本免费人成黄页网观看视频 | 国产一级一级一级成人毛片 | 国产在线一区二区三区在线 | 精品国产免费一区二区三区 | 国产亚洲精品久久久久久小说 | 国产亚洲综合在线 | 天天射综合 | 大尺度视频网站久久久久久久久 | 99久久精品国产麻豆 | 久草综合视频在线 | 久久精品国产一区二区三区不卡 | 操日本妞| 久久午夜夜伦伦鲁鲁片 | 国产91久久久久久久免费 |