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

系列八、key是弱引用,gc垃圾回收时会影响ThreadLocal正常工作吗

一、key是弱引用,gc垃圾回收时会影响ThreadLocal正常工作吗

        到这里,有些小伙伴可能有疑问,ThreadLocalMapkey既然是 弱引用,那么GC时会不会贸然地把key回收掉,进而影响ThreadLocal的正常使用呢?答案是不会影响ThreadLocal的正常工作的。原因如下,虽然ThreadLocalMap的Entry的key是一个弱引用(key为ThreadLocal),但是栈中还有ThreadLocal ref在引用着ThreadLocal,如下所示:

 

二、代码证明

/*** @Author : 一叶浮萍归大海* @Date: 2023/11/22 14:36* @Description: 证明gc时不会回收ThreadLocalMap的弱引用(除非手动将变量设置为null)*/
public class ThreadLocalWeaknessMainApp {public static void main(String[] args) {Object obj = new Object();WeakReference<Object> weakReference = new WeakReference<>(obj);System.out.println("GC回收之前:" + weakReference.get());System.gc();System.out.println("GC回收之后:" + weakReference.get());obj = null;System.gc();System.out.println("对象设置为null,GC回收之后:" + weakReference.get());}}

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

相关文章:

  • pytorch中.to(device) 和.cuda()的区别
  • Mysql 递归查询子类Id的所有父类Id
  • 设计模式 之单例模式
  • ros2不同机器通讯时IP设置
  • Nginx模块开发之http过滤器filter
  • 26 - 原型模式与享元模式:提升系统性能的利器
  • 【Web安全】sqlmap的使用笔记及示例
  • 机器学习第12天:聚类
  • 若依框架导出下载pdf/excel以及导入打印等
  • 汇编-PROC定义子过程(函数)
  • 服务器主机安全的重要性及防护策略
  • PDF转成图片
  • Qt无边框设计
  • 规则引擎Drools使用,0基础入门规则引擎Drools(二)高级语法
  • C语言二十三弹---求第N项斐波那契数列的值
  • Pickcode:教孩子们编码的新视觉语言
  • 乐划锁屏插画大赏热度持续,进一步促进价值内容的创造与传播
  • 【ArcGIS Pro微课1000例】0034:矢量数据几何校正案例(Spatial Adjustment)
  • 2023亚太杯数学建模B题:玻璃温室中的微气候法规,思路模型代码论文
  • Eclipse常用设置-乱码
  • MySQL面试,MySQL事务,MySQL锁,MySQL集群,主从,MySQL分区,分表,InnoDB
  • HarmonyOS应用开发者认证题目满分指南
  • openssl+ SM2 + linux 签名校验开发实例(C++)
  • 有关Vue、微信小程序、UniApp中的CSS中的宽度width单位、自适应
  • 黑马React18: ReactRouter
  • 算法刷题-动态规划-1
  • 分享一篇很就以前的文档-VMware Vsphere菜鸟篇
  • QT中的lambda表达式
  • linux文件I/O:文件锁的概念、函数以及代码实现
  • MySQL数据库系统教程