【技术】《Netty》从零开始学netty源码(三十七)之ByteBufAllocator

ByteBufAllocator

在channel的配置类中有一个属性allocator,我们知道netty有自己的缓冲区,可以使用该缓存分配器来分配所需的缓存。在config类中默认使用ByteBufAllocator.DEFAULT,它的初始化过程如下:

【技术】《Netty》从零开始学netty源码(三十七)之ByteBufAllocator_第1张图片

在开始分析PooledByteBufAllocator的构造函数之前先看下它的类结构图:

【技术】《Netty》从零开始学netty源码(三十七)之ByteBufAllocator_第2张图片

接下来看下它的属性:

【技术】《Netty》从零开始学netty源码(三十七)之ByteBufAllocator_第3张图片

它的功能是分配内存,根据所调用的方法来分配所需类型的缓存,可以是堆内缓存,可以是直接内存缓存,也可以是复合类型:
【技术】《Netty》从零开始学netty源码(三十七)之ByteBufAllocator_第4张图片

ByteBufAllocator的属性中看到了两个陌生类:PoolArenaPoolThreadLocalCache,在具体分析ByteBufAllocator分配内存的方法之前需要先了解这两个类,在接下来的文章中会先分析这两个类。

每天坚持一点点,每天进步一点点。

你可能感兴趣的:(Netty,netty)