求助>ThreadLocalMap中key弱引用疑惑>
2回复
9月前

ThreadLocalMap中key弱引用疑惑



ThreadLocalMap中的key是弱引用,如果被GC了,那么线程再去get数据岂不是就没有了?

还是说ThreadLocalMap只能存一些缓存数据,被GC了就重新生成。

860 阅读
请先登录,再评论

回复列表

lipu7月前

key有两条引用指向他,一条是当前的thread,一条是你的threadlocal,如果线程不跑完,栈里会一直指向当前的thread,threadlocalmap是thread的成员变量。如果是强引用,即使threadlocal=null,但是key依然有引用,所以要用弱引用

如果你还能去get数据,说明还有对ThreadLocal的强引用,那怎么会被GC呢...