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

ThreadLocal的原理

ThreadLocal原理
1ThreadLocal是一个工具类,为每个线程提供自己专属的本地变量
2ThreadLocal底层是通过ThreadLocalMap实现的,每个Thread对象中存在一个ThreadLocalMap,Map的key为ThreadLocal对象,Map的value为要缓存的值

ThreadLocal内存泄露问题是怎么产生的?
ThreadLocalMap 中使用的 key 为 ThreadLocal 的弱引用,而 value 是强引用。,在垃圾回收的时候,key 会被清理掉,而 value 不会被清理掉。假如我们不做任何措施的话,value 永远无法被 GC 回收,这个时候就可能会产生内存泄露。使用完 ThreadLocal方法后最好手动调用remove()方法(清除ThreadLocalMap中的带有key为该ThreadLocal对象的Entry)。

ThreadLocal的应用场景
当一个共享变量是共享的,但是需要每个线程互不影响,相互隔离,就可以使用ThreadLocal

相关文章:

  • 深入浅出简单工厂模式及其在 Spring 框架中的应用
  • 【专业英语 复习】第9章 Privacy, Security,and Ethics
  • 【Flask】学习
  • 丰臣秀吉-读书笔记六
  • 沙奇里再造世界波,容声注定与经典结缘
  • 如何验证证书的合法性
  • MaxWell实时监控Mysql并把数据写入到Kafka主题中
  • Linux下VSCode的安装和基本使用
  • 数组和链表的区别是什么?
  • Pycharm怎么默认终端连接远程服务器
  • 【因果推断python】50_去偏/正交机器学习2
  • 深入讲解C++基础知识(一)
  • 内容安全复习 7 - 对抗攻击与防御
  • mac电脑守护神CleanMyMac2024免费版本下载
  • 安卓为啥要加签名机制
  • (ckeditor+ckfinder用法)Jquery,js获取ckeditor值
  • 【Amaple教程】5. 插件
  • 【每日笔记】【Go学习笔记】2019-01-10 codis proxy处理流程
  • C++类中的特殊成员函数
  • Computed property XXX was assigned to but it has no setter
  • ES6简单总结(搭配简单的讲解和小案例)
  • Java 内存分配及垃圾回收机制初探
  • javascript从右向左截取指定位数字符的3种方法
  • Java精华积累:初学者都应该搞懂的问题
  • JS+CSS实现数字滚动
  • python 装饰器(一)
  • SQLServer插入数据
  • 从伪并行的 Python 多线程说起
  • 给Prometheus造假数据的方法
  • 关于字符编码你应该知道的事情
  • 基于MaxCompute打造轻盈的人人车移动端数据平台
  • 记一次删除Git记录中的大文件的过程
  • 如何合理的规划jvm性能调优
  • 如何抓住下一波零售风口?看RPA玩转零售自动化
  • 深度学习在携程攻略社区的应用
  •  一套莫尔斯电报听写、翻译系统
  • 以太坊客户端Geth命令参数详解
  • 最简单的无缝轮播
  • 国内开源镜像站点
  • 昨天1024程序员节,我故意写了个死循环~
  • ​LeetCode解法汇总2670. 找出不同元素数目差数组
  • # 利刃出鞘_Tomcat 核心原理解析(二)
  • #Linux(Source Insight安装及工程建立)
  • #WEB前端(HTML属性)
  • $Django python中使用redis, django中使用(封装了),redis开启事务(管道)
  • (16)UiBot:智能化软件机器人(以头歌抓取课程数据为例)
  • (2022版)一套教程搞定k8s安装到实战 | RBAC
  • (Forward) Music Player: From UI Proposal to Code
  • (安卓)跳转应用市场APP详情页的方式
  • (附源码)spring boot车辆管理系统 毕业设计 031034
  • (附源码)ssm码农论坛 毕业设计 231126
  • (学习日记)2024.04.10:UCOSIII第三十八节:事件实验
  • (一)Spring Cloud 直击微服务作用、架构应用、hystrix降级
  • (转)Android学习系列(31)--App自动化之使用Ant编译项目多渠道打包
  • (转)清华学霸演讲稿:永远不要说你已经尽力了