1.是什么?
ThreadLocal是一个工具类,它为每个线程提供一个单独的变量副本存放这个线程的私有变量,其他线程不能改变其值。
2.内部结构、原理
每个线程有一个ThreadlocalMap,里面存放Entry键值对,key是ThreadLocal(??),value是变量副本。
3.内存泄漏:
key时弱引用,value是强引用,如果key被回收了而value没,就会存在key==null的Entry,无法回收value,可能会造成内存泄漏。
解决办法是:使用ThreadLocal方法后,最好手动调用remove方法。
来源:oschina
链接:https://my.oschina.net/u/4527334/blog/4305575