ByteBufAllocator
在channel的配置类中有一个属性allocator
,我们知道netty有自己的缓冲区,可以使用该缓存分配器来分配所需的缓存。在config类中默认使用ByteBufAllocator.DEFAULT
,它的初始化过程如下:
在开始分析PooledByteBufAllocator的构造函数之前先看下它的类结构图:
接下来看下它的属性:
它的功能是分配内存,根据所调用的方法来分配所需类型的缓存,可以是堆内缓存,可以是直接内存缓存,也可以是复合类型:
从ByteBufAllocator的属性中看到了两个陌生类:PoolArena、PoolThreadLocalCache,在具体分析ByteBufAllocator分配内存的方法之前需要先了解这两个类,在接下来的文章中会先分析这两个类。
每天坚持一点点,每天进步一点点。