ThreadLocal和Map比较

ThreadLocal, 是JDK的,想法有点 "线程作用域"之类的变量

 

相对于全局 Map<Thread, Object>的 实现 来说, ThreadLocal有一些优点,

它把线程自己用的对象放在了Thread对象的threadLocals里面,而不是放在全局的map里面,在调用exit()方法的时候,会把threadLocals释放。
这样就算只set()而没有remove()也没有关系,但全局map就必须得记得要remove().

ThreadLocal只是作为引用key变量,指向值,提供工具方法,不存任何东西,感觉这种实现方式优雅很多, Map<Thread, Object>可以用ThreadLocal替代。

昨天看到在Java Concurrency in Practice 中Section 3.3.3. ThreadLocal一节对此也有很好的解释。

你可能感兴趣的:(jdk,thread)