ThreadLocalMap的enrty的key为什么要设置成弱引用
时间: 2023-10-31 21:42:48 浏览: 102
ThreadLocal,你真的了解吗?
ThreadLocalMap的entry的key被设置为弱引用,是为了避免内存泄漏。
ThreadLocalMap中的entry其实是一个包含key和value的键值对,其中key是ThreadLocal对象。如果entry中的key是强引用,那么即使ThreadLocal对象已经没有被外部引用,但是由于ThreadLocalMap中还持有对该key的强引用,因此该ThreadLocal对象无法被GC回收,导致内存泄漏。
因此,将entry中的key设置为弱引用可以避免这种内存泄漏问题。如果ThreadLocal对象没有被外部引用,那么就会被GC回收,entry中的key也会被自动清理掉。这样,就能够及时释放内存,避免内存泄漏问题的发生。
阅读全文