关于ThreadLocal
创始人
2024-05-23 16:13:31
  1. 弱引用
    1.1 java中的各种引用和测试: https://blog.csdn.net/thewindkee/article/details/102723838
    1.2 treadlocal中的弱引用测试:
    https://blog.csdn.net/thewindkee/article/details/103726942 (这篇很重要)

  2. 内存泄露:
    https://zhuanlan.zhihu.com/p/523628871

  3. 综合考虑 内存泄露和弱引用:
    https://blog.csdn.net/weixin_43847283/article/details/125470183
    https://blog.csdn.net/weixin_38308374/article/details/113809477

  4. 开放地址法, 直接看整套源码分析:
    https://blog.csdn.net/qq_26470817/article/details/124993311

  5. 本篇也想阐述另一个点:
    //1.如果threadlocal是局部变量, 此也不会有什么gc后线程local0取出来是null的担心, 因为 语法上你就访问不了, 作用域超出了.
    //2. private static ThreadLocal local = new ThreadLocal(); 才是更通用的普遍用法
    //2.1 new ThreadLocal() 是 treadLocalMap中的key, 这个key是可以给各个变量共用的. 通过ThreadLocal-ThreadLocalMap
    //打通三个要素, a.某线程 treadId 的 b. 某块区域 即local表征 的 值 value
    // 2.2 此时说明 new ThreadLocal() 是线程安全的, 不会有多线程问题. 可共用作为各自线程的 treadLocalMap中的虚引用key(被虚引用包装) 本来就是为线程私有问题而设计的嘛, 自然共用也不会有问题

1.2中有这么一句: 而我们平时代码中写的那样,使用static final修饰threadLocal保留一个全局的threadLocal方便传递其他value(threadLocal一直被强引用)。这样就不会让gc回收 作为key的threadLocal。即不会导致key为null。

相关内容

热门资讯

Meta正式入局个人AI代理赛... 财联社9月10日讯(编辑 赵昊)Meta Platforms推出了一款全新的人工智能代理,旨在帮助用...
兵团20名优秀教师获评特级教师 本报乌鲁木齐讯(全媒体记者 陈琼 常丫丫) 近日,兵团教育局、兵团人力资源和社会保障局联合发布...
打好政策“组合拳” 托起群众... 本报乌鲁木齐讯(全媒体记者 陈琼) “近期看房客户明显增多,叠加住房消费补贴政策带动,成交态势向...
2026显示器排行榜 高清IP... 深夜赶PPT、清晨抢网课、周末剪Vlog、睡前追剧刷番——对大学生而言,一块靠谱的显示器早已不是外设...
最新八G显卡销量排行榜 远程G... 清晨九点,城市写字楼里灯光渐次亮起,一台搭载专业显卡的台式机正悄然加载远程GPU服务——它不追求4K...