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

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

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

ByteBufAllocator

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

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

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

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

接下来看下它的属性:

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

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

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

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