47、Netty源码分析:PoolChunk释放内存

free

PoolChunk需要释放内存空间时可调用free方法,具体的源码过程如下:

*

在这个过程中最重要的是第三步的collapseRuns方法,当释放了空间以后要更新runsAvailrunAvailsMap的信息,如果handle对应的内存空间的上边界以及下边界是空闲的空间则需要合并,方法如下:

*

collapsePast

合并上边界:
*

为了更好的理解该方法,以下面的空间图为例:

如果是相连的,过程如下:
*

如果不相连,过程如下:
*

collapseNext

合并下边界:
*

为了更好的理解该方法,以下面的空间图为例:

如果是相连的,过程如下:
*

如果不相连,过程如下:

*

至此,PoolChunk的内存释放分析到此结束。
全文完,如果觉得文章有点意思,不妨点个“赞”或者“在看”吧,您的每一份正反馈都是对三横兰写作的最大肯定,感谢阅读_

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

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

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

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