当前位置: 首页 > news >正文

【技术】《Netty》从零开始学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的部分分析到此结束。

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

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

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

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

http://www.lryc.cn/news/61842.html

相关文章:

  • 新建虚拟机更改ip(连接xshell)
  • 什么是VBST和PVST?两者有啥区别?
  • 记录-JavaScript常规加密技术
  • 二十三、高级网络技术及应用——BFD解析
  • 大家经常说的java八股文到底是什么?让我来总结一下吧!
  • C++备忘录模式实践:轻松实现撤销与恢复功能
  • 如何选择CDN加速平台?
  • 其实苹果知道自己离不开中国制造,因此悄悄给自己留了后路
  • 必用WhatsApp营销的4个理由
  • Python从入门到精通9天(异常的处理)
  • 微服务学习——Docker
  • QMS-云质说质量 - 5 解决中小企业质量问题的钥匙在哪里?
  • 基于Java+Spring+vue+element社区疫情服务平台设计和实现
  • 实战项目:手把手带你实现一个高并发内存池
  • 原理这就是索引下推呀
  • 个人通讯录(二)
  • DockerK8S常见面试知识
  • tcpdump arping nsenter
  • Python - 简单快速回忆基础语法
  • 蓝牙耳机接打电话哪个比较好?接打电话最好的蓝牙耳机
  • DeepSORT中的卡尔曼滤波
  • 【Linux网络服务】SSH远程访问及控制
  • AutoGPT的出现,会让程序员失业吗?
  • 微信小程序php+vue 校园租房指南房屋租赁系统
  • 水果FL Studio21最新中文完整版下载更新及内容介绍
  • springboot+vue小区物业管理系统(源码+文档)
  • GEEer成长日记二十三:chatGPT可以帮我们提取水体边缘吗?
  • 程序员阿里三面无理由挂了,被HR一句话噎死,网友:这可是阿里啊
  • js面试题
  • SpringCloud --- Gateway服务网关