《Netty》从零开始学netty源码(四十四)之PoolChunk释放内存

free

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

在这里插入图片描述

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

在这里插入图片描述

collapsePast

合并上边界:
在这里插入图片描述

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

如果是相连的,过程如下:
在这里插入图片描述

如果不相连,过程如下:
在这里插入图片描述

collapseNext

合并下边界:
在这里插入图片描述

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

如果是相连的,过程如下:
在这里插入图片描述

如果不相连,过程如下:

在这里插入图片描述

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

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

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

我是三横兰,那个三横的兰
请添加图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值