《Netty》从零开始学netty源码(五十四)之PoolThreadLocalCache

PoolThreadLocalCache

前面讲到PoolThreadCache,它为线程提供内存缓存,当线程需要分配内存时可快速从其中获取,在Netty中用PoolThreadLocalCache来管理PoolThreadCache,它的数据结构如下:
在这里插入图片描述

PoolThreadLocalCache相当于java的ThreadLocal,我们知道ThreadLocal中维护的是ThreadLocalMap,使用hashcode来做下标,而Netty中自己维护了一个InternalThreadLocalMap,内部使用的是一个数组来存放变量值,使用index来寻找当前线程对应的变量,它的性能比map要好一些。

接下来分析它的三个方法:get()set()remove()

get()

在这里插入图片描述

子类PoolThreadLocalCacheinitialize()方法进行重写:
在这里插入图片描述

接下来我们看下定时任务trimTask()

trimTask

在这里插入图片描述

set()

在这里插入图片描述

如果变量值value有效则将其放入map中,否则将其删除,接下来具体分析这两个方法。

setKnownNotUnset()

在这里插入图片描述

remove()

删除的时候需要两步,第一步是先将其从待删除列表中删除,第二步则是对象自己本身的清除工作。

在这里插入图片描述

removeFromVariablesToRemove()

在这里插入图片描述

onRemoval()

在这里插入图片描述

至此,PoolThreadLocalCache分析至此完毕。
请添加图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/17298.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Unity3D:内置着色器的用途和性能

推荐:将 NSDT场景编辑器 加入你的3D工具链 3D工具集: NSDT简石数字孪生 内置着色器的用途和性能 Unity 中的着色器是通过__材质__来使用的,材质本质上结合了着色器代码与纹理等参数。此处提供了关于着色器/材质关系的深入说明。 当选择材质…

延时队列的三种实现方案

延时队列的三种实现方案 什么是延时队列延时队列的应用场景基于Java DelayQueue的实现源码剖析 基于Redis的zset实现实现步骤Redis延时队列优势Redis延时队列劣势 基于RabbitMQ的延时队列实现TTL DXL(死信队列)插件实现 总结参考文章 什么是延时队列 在分布式系统中&#xff…

Java之多线程初阶2

目录 一.上节内容复习 1.进程和线程的区别 2.创建线程的四种方式 二.多线程的优点的代码展示 1.多线程的优点 2.代码实现 三.Thread类常用的方法 1.Thread类中的构造方法 2.Thread类中的属性 1.为线程命名并获取线程的名字 2.演示isDaemon() 3.演示isAlive() 4.演示…

ChatGPT写文章效果-ChatGPT写文章原创

ChatGPT写作程序:让文案创作更轻松 在当前数字化的时代,营销推广离不开文案创作。然而,写作对许多人来说可能是一项耗时而枯燥的任务。如果您曾经为写出较高质量的文案而苦恼过,那么ChatGPT写作程序正是为您而设计的。 ChatGPT是…

Python 模块

目录 1.模块导入语言 1.1 import 语句 1.2 from…import 语句​编辑 2. 搜索路径 3.命名空间和作用域 4.globals() 和 locals() 函数 5.reload() 函数 6.Python中的包 7.自定义模块及其调用 7.1 创建模块及__init__.py初始化文件 7.2 __init__.py的参数__all__ …

【vite+vue3.2 项目性能优化实战】打包体积分析插件rollup-plugin-visualizer视图分析

rollup-plugin-visualizer是一个用于Rollup构建工具的插件,它可以生成可视化的构建报告,帮助开发者更好地了解构建过程中的文件大小、依赖关系等信息。 使用rollup-plugin-visualizer插件,可以在构建完成后生成一个交互式的HTML报告&#xf…

从血缘进化论的角度,破解婆媳关系的世纪难题

从血缘进化论的角度,破解婆媳关系的世纪难题 有个粉丝的留言,很长很复杂,是关于他们家的婆媳关系问题。 青木老师,您好,我也有一些问题想咨询您,是关于婆媳关系的,字数有些多,分开…

【ElasticSearch】EQL操作相关

文章目录 EQL操作基础语法数据准备数据窗口搜索统计符合条件的事件事件序列 安全检测数据准备查看数据导入情况获取 regsvr32 事件的计数检查命令行参数检查恶意脚本加载检查攻击成功可能性 EQL操作 EQL 的全名是 Event Query Language (EQL)。事件查询语言(EQL&…

【问题记录】flask开发blog

文章目录 小知识点问题1. 文章标签显示错误2. 文章状态无法回显(open)3. 用户管理页面,图标无法显示4. BuildError5. 用户管理添加用户,使用重复的用户名会报错(open)6. 添加用户,不上传头像会报错(open)7. 部分标签删除时报错&am…

JAVA springboot创业实践学分管理系统idea开发mysql数据库web结构计算机java编程MVC

一、源码特点 idea springboot创业实践学分管理系统是一套完善的web设计系统mysql数据库MVC模式开发,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式 开发。 JAVA springboot创业实践学分管理系统ide…

Ubuntu搜狗输入法安装指南

Ubuntu搜狗输入法安装指南 Ubuntu搜狗输入法安装指南搜狗输入法已支持Ubuntu1604、1804、1910、2004、2010Ubuntu20.04及以上安装搜狗输入法步骤 Ubuntu搜狗输入法安装指南 下载地址:https://shurufa.sogou.com/ 计算为amd64的选择x86_64,以下教程来源…

2023Java商城毕业设计(附源码和数据库文件下载链接)Spring Boot + mysql + maven + mybatis-plus

2023Java商城毕业设计Spring Boot mysql maven mybatis-plus 用户注册用户登录修改密码商品列表(分类模糊查询)个人信息用户信息修改订单信息添加至购物车商品列表商铺详情商品详情商铺列表 资源目录如下:(源码sql文件&#xf…

Linux入门2(常用命令)

Linux入门2 Linux常用命令快捷键基础命令文件查看命令文件编辑命令进程管理命令用户管理命令 Linux常用命令 快捷键 Ctrl Alt T打开终端 Ctrl shift 加号 终端字体放大 ctrl 减号 终端字体缩小 基础命令 sudo su 进入管理员目录 exit 返回到用户目录 ls 当前目录下的文…

Illustrator如何使用基础功能?

文章目录 0.引言1.菜单栏2.工具箱 0.引言 因科研等多场景需要进行绘图处理,笔者对Illustrator进行了学习,本文通过《Illustrator CC2018基础与实战》及其配套素材结合网上相关资料进行学习笔记总结,本文对软件界面基本功能进行阐述。    1…

K8s 安全是云安全的未来

导语 到 2025 年,保护 Kubernetes (K8s) 将被认为是云安全最重要的方面。 在最成功的组织中,CTO 和 CISO 已经意识到 Kubernetes 安全的重要性。 但是,虽然 Kubernetes 已经占 CTO 云支出的很大一部分,但 CISO 仍然有所落后。 大…

Android Studio开发图书管理系统APP

Android Studio开发项目图书管理系统项目视频展示: 点击进入图书管理系统项目视频 引 言 现在是一个信息高度发达的时代,伴随着科技的进步,文化的汲取,人们对于图书信息的了解与掌握也达到了一定的高度。尤其是学生对于知识的渴…

asp.net基于web的学生选课成绩管理系统86程序

系统使用Visual studio.net2010作为系统开发环境,并采用ASP.NET技术,使用C#语言,以SQL Server为后台数据库。 本系统主要包含了“登录模块”、“系统用户管理模块”、“课程信息管理模块”、“教师信息管理模块”、“班级信息管理模块”、“…

Lattics ——一款简单易用、好看强大的知识管理工具

如何选择一款适合自己的知识管理工具? 对于很多用户而言,在追求效率的路上,经常需要一款适合自己的知识管理工具。然而,随着工具市场的发展,各种新兴工具层出不穷。在传统领域,有印象笔记、Onenote 为代表…

【笔试强训选择题】Day7.习题(错题)解析

作者简介:大家好,我是未央; 博客首页:未央.303 系列专栏:笔试强训选择题 每日一句:人的一生,可以有所作为的时机只有一次,那就是现在!!! 文章目录…

如何充分利用实时聊天系统?

随着商业和电子商务领域经历快速的数字革命,必须迅速适应的一个因素是我们与客户的互动方式。几年前,电子邮件和电话还是主要的客户联系方式。如今,客户期望更好的服务和更即时的沟通。实时聊天支持系统可以解决此问题,如SaleSmar…