netty ByteBuf扩容机制详解

2020-05-08 00:06栏目:编程
TAG: java

一个继承类为AbstractByteBuf,AbstractByteBuf并未定义具体的缓冲区实现,交由子类去实现,因为该类并不关心具体的实现。比如说缓冲区是采用堆内存还是直接内存(堆外内存),它只用来提供基本对缓冲区的基本操作(读,写,检索等) ,这里体现了抽象和继承的价值所在,具体的公共功能交由父类来完成实现,差异化功能交由子类去实现。
 
这里我们以writeBytes()方法来描述具体的扩容机制:
netty心跳机制实现
 
扩容的地方是在ensureWritable()方法中实现的,我们跟进进去:
netty事件通知机制
 
看到这里,我们发现calculateNewCapacity()方法是实现扩容的核心,我们跟进进去:
netty心跳机制
netty异步方法
到这里,ByteBuf的扩容机制就说完了,这里只是我的理解,如果存在解释错误的问题还请各位指正。

本文来自网络,不代表山斋月平台立场,转载请注明出处: https://www.shanzhaiyue.top