PoolChunk
我们再回顾以下netty中与内存相关的类:
前面我们已经分析了PoolSubpag,本章我们分析PoolChunk,先看下它的属性值:
为了更好的理解这些属性值,我们结合它的构造函数来理解,具体的源码如下:
其中:
- runsAvail
- runsAvailMap
- initHandle
- 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的部分分析到此结束。
全文完,如果觉得文章有点意思,不妨点个“赞”或者“在看”吧,您的每一份正反馈都是对三横兰写作的最大肯定,感谢阅读_
每天坚持一点点,每天进步一点点
坚持是日复一日,质变需日积月累
我是三横兰,那个三横的兰