看上图知就知道当 k == null 的时候就会执行清理计划,可是这并无什么卵用,
虽然ThreadLocalMap对于 ThreadLocal的引用是弱引用,可是大部分场景,
以下图所示 ThreadLocal自己都是被static 静态变量引用的,
, 也就是说 上图中(k == null)90%的状况下并不会发生。线程
除非你的ThreadLocal只是被单个线程栈引用,当这个线程中的栈幁对ThreadLocal的引用不存在了,
上图中的 k == null 才会成立,并且成立的条件也要看虚拟机的回收机制,
若是运行中没有触发GC k == null 依然不会成立,固然这是小几率事件。blog