zoukankan      html  css  js  c++  java
  • ThreadLocal为什么不用强引用

    那为什么使用弱引用而不是强引用??

    我们看看Key使用的

    key 使用强引用

    当hreadLocalMap的key为强引用回收ThreadLocal时,因为ThreadLocalMap还持有ThreadLocal的强引用,如果没有手动删除,ThreadLocal不会被回收,导致Entry内存泄漏。 譬如  设置:ThreadLocal=null  以后,应该会被回收的,但实际情况是ThreadLocalMap还有一个强引用,导致无法回收

    key 使用弱引用

    当ThreadLocalMap的key为弱引用回收ThreadLocal时,由于ThreadLocalMap持有ThreadLocal的弱引用,即使没有手动删除,ThreadLocal也会被回收。当key为null,在下一次ThreadLocalMap调用set(),get(),remove()方法的时候会被清除value值。

    譬如  设置:ThreadLocal=null  以后,强引用已没有,ThreadLocalMap还有一个弱引用,下次GC就会被回收

  • 相关阅读:
    关于Combobox的多选和单选情况
    Struts2的method{1}用法
    ${sessionScope.user}的使用方法
    jQuery 遍历
    jQuery的Event对象(实例)。
    度熊全是由1构成的字符串
    Prime Ring Problem
    八皇后问题
    Hanoi
    全排列
  • 原文地址:https://www.cnblogs.com/tiancai/p/13026434.html
Copyright © 2011-2022 走看看