真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

【閃電俠學(xué)netty】第7章數(shù)據(jù)載體ByteBuf的介紹-創(chuàng)新互聯(lián)

【Netty】讀書(shū)筆記 - 跟閃電俠學(xué)netty 1. 內(nèi)容概要 1.1 總結(jié) 1.1.1 內(nèi)存管理

Netty 使用的是堆外內(nèi)存,需要手動(dòng)釋放,使用引用計(jì)數(shù)的方式管理內(nèi)存,當(dāng)引用計(jì)數(shù) =0,回收ByteBuf 底層內(nèi)存

成都創(chuàng)新互聯(lián)公司是專業(yè)的高陵網(wǎng)站建設(shè)公司,高陵接單;提供成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站、成都外貿(mào)網(wǎng)站建設(shè)公司,網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行高陵網(wǎng)站開(kāi)發(fā)網(wǎng)頁(yè)制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛(ài)的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來(lái)合作!

原則:誰(shuí)使用retain() , 誰(shuí)釋放release()

1.1.2? 創(chuàng)建ByteBuf的方式
  • ByteBuf buffer = ctx.alloc().buffer(); (第6章,P41)
  • ByteBuf buffer = ByteBufAllocator.DEFAULT.buffer(9, 100);(第7章,P49)
  • ByteBuf buffer = ByteBufAllocator.DEFAULT.ioBuffer();(第8章,P59)
  • ByteBuf buffer = ctx.alloc().ioBuffer();(第9章 csdn)

其中?

ctx 為 ChannelHandlerContext 通道處理上下文對(duì)象

ctx.alloc() 返回?ByteBufAllocator?ByteBuf的分配器

2. 課程內(nèi)容 1 ByteBuf 的結(jié)構(gòu)
  • ByteBuf 容器 - 當(dāng)前容量?capacity? =? 已廢棄的字節(jié) + 可讀字節(jié) + 可寫(xiě)字節(jié)
  • ByteBuf 容器 - 大容量 maxCapacity? ?=? capacity? +?可擴(kuò)容字節(jié)
  • 被讀寫(xiě)指針劃分三部分
  • 從指針開(kāi)始的地方讀寫(xiě),讀寫(xiě)之間相互沒(méi)有沖突
  • 已廢棄的字節(jié)(通常為0)

1.1 readerIndex
  • 讀指針,從0開(kāi)始
  • ByteBuf 中每讀一個(gè)字節(jié),readerIndex自增1
  • 可讀字節(jié)數(shù) = writerIndex - readerIndex , 所以writeIndex = readerIndex,ByteBuf 不可讀
1.2 writerIndex
  • 寫(xiě)指針,從0開(kāi)始
  • ByteBuf中每寫(xiě)一個(gè)字節(jié),writerIndex自增1,直到 capacity
  • 可寫(xiě)字節(jié)數(shù) = capacity?-?writeIndex
1.3 擴(kuò)容
  • ByteBuf 寫(xiě)數(shù)據(jù),容量不足就會(huì)自動(dòng)擴(kuò)容
  • capacity?擴(kuò)容到 maxCapacity
  • 超過(guò)maxCapacity會(huì)報(bào)錯(cuò)

2 常用 API
API類別名稱使用
容量capacity()當(dāng)前ByteBuf容量?capacity?=? 已廢棄的字節(jié) + 可讀字節(jié) + 可寫(xiě)字節(jié)
maxCapacity()大容量=? capacity?+?可擴(kuò)容字節(jié)
readableBytes()ByteBuf當(dāng)前可讀字節(jié)數(shù),= writerIndex - readerIndex
isReadable()是否可讀
writableBytes()ByteBuf當(dāng)前可寫(xiě)字節(jié)數(shù),= capacity?-?writeIndex
isWritable()是否可寫(xiě)
MaxWritableBytes()大可寫(xiě)字節(jié)數(shù),= maxCapacity?-?writeIndex
讀寫(xiě)指針readerIndex()返回當(dāng)前讀指針readerIndex
readerIndex(int)設(shè)置讀指針index
writerIndex()返回當(dāng)前寫(xiě)指針writerIndex
writerIndex(int)設(shè)置寫(xiě)指針index
markReaderIndex()保存當(dāng)前讀指針(推薦)
resetReaderIndex()把當(dāng)前讀指針恢復(fù)到之前保存的值(推薦)
markWriterIndex()保存當(dāng)前寫(xiě)指針(推薦)
resetWriterIndex()把當(dāng)前寫(xiě)指針恢復(fù)到之前保存的值(推薦)
讀寫(xiě)readBytes(byte[] dst)把ByteBuf中的數(shù)據(jù)全部讀取到dst
writeBytes(byte[] src)將src中的數(shù)據(jù)寫(xiě)入到ByteBuf
readByte()從ByteBuf中讀取一個(gè)字節(jié)
writeByte(byte b)往ByteBuf寫(xiě)入一個(gè)字節(jié)
retain()引用計(jì)數(shù)加1
release()引用計(jì)數(shù)減1
slice()截取readerIndex到writeIndex的數(shù)據(jù),返回大容量為原始ByteBuf的readableBytes()的ByteBuf
duplicate()共享原始ByteBuf,書(shū)本確實(shí)示例,后期補(bǔ)全
copy()復(fù)制原始ByteBuf,返回的ByteBuf寫(xiě)數(shù)據(jù)不影響原始ByteBuf
retainedSlice()等價(jià)于slice().retain(),需要調(diào)用一次release(),否則報(bào)錯(cuò)
retainedDuplicate等價(jià)于duplicate().retain(),需要調(diào)用一次release(),否則報(bào)錯(cuò)

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧


本文題目:【閃電俠學(xué)netty】第7章數(shù)據(jù)載體ByteBuf的介紹-創(chuàng)新互聯(lián)
網(wǎng)頁(yè)路徑:http://weahome.cn/article/hpsph.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部