43、Netty源码分析:PoolChunk

PoolChunk

我们再回顾以下netty中与内存相关的类:
*

前面我们已经分析了PoolSubpag,本章我们分析PoolChunk,先看下它的属性值:

*

为了更好的理解这些属性值,我们结合它的构造函数来理解,具体的源码如下:
*

其中:

1、 runsAvail;
2、 runsAvailMap;
3、 initHandle;
4、 insertAvailRun方法;

会具体分析,本篇先分析initHandle。

initHandle

在前面分析PoolSubpage的时候我们知道handle是一个指针,代表分配的内存的位置,具体格式如下:

*

从图中我们可以看到左起的33位(0为初始位)已经被占用,记录page个数的为第34~48位,所以初始的iniHandle = pages * 2的34位,即代码中的pages << SIZE_SHIFT,默认的pages为512(2的9次方),所以默认的iniHandle为2的43次方(8796093022208),如下图:

*

至此,PoolChunk的部分分析到此结束。

全文完,如果觉得文章有点意思,不妨点个“赞”或者“在看”吧,您的每一份正反馈都是对三横兰写作的最大肯定,感谢阅读_

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

坚持是日复一日,质变需日积月累

我是三横兰,那个三横的兰

版权声明:本文不是「本站」原创文章,版权归原作者所有 | 原文地址: