ThreadLocal.Entry的key为何使用弱引用

         当前线程的threadlocals属性赋值ThreadLoaclMap的实例后,ThreadLoaclMap便伴随着整个线程,特别是当使用线程池的时候,ThreadLoaclMap存在的时间会非常长,如果ThreadLocal.Entry的key是强引用,当TreadLocal被执行threadLocal=null,那么Entry的key对threadlocal还是强引用,一直不会被回收,那么可能会导致内存泄漏,如果是弱引用,那么当没有强引用指向threadlocal时,gc一执行回收就会将key指向的threadlocal回收

你可能感兴趣的:(java)