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类