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的部分分析到此结束。
全文完,如果觉得文章有点意思,不妨点个“赞”或者“在看”吧,您的每一份正反馈都是对三横兰写作的最大肯定,感谢阅读_
每天坚持一点点,每天进步一点点
坚持是日复一日,质变需日积月累
我是三横兰,那个三横的兰
版权声明:本文不是「本站」原创文章,版权归原作者所有 | 原文地址: