本文主要是介绍26.ByteBuf组成和内存释放源码,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
ByteBuf中有什么?
1.capacity 容量
2.max capacity 最大容量
3.读指针(在ByteBuf的一开始)
4.写指针(在ByteBuf的一开始)
读指针与写指针之间就是 还未读取的部分(可读部分)。
读指针读过的部分叫做废弃的部分。
ByteBuf由四部分组成
- 可扩容部分(容量capacity与最大容量max capacity之间的部分)
- 可写部分(写指针位置到ByteBuf容量的末尾)
- 可读部分(读指针到写指针之间)
- 废弃部分(读指针已经读取的部分)
跟ByteBuffer比,不需要切换读模式、写模式了。
ByteBuf的内存释放
ByteBuf的内存释放,因为ByteBuf可能会在多个handler中传递,所以谁是最后使用者,谁负责释放ByteBuf,也就是负责release。
pipeline(一系列的handler):
head -> Inbound_1 -> Inbound_2 -> Inbound_3 -> Outbound_1 -> Outbound_1 -> tail
tail对ByteBuf的释放处理源码追踪
tail找到TailContext类
这篇关于26.ByteBuf组成和内存释放源码的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!