写一点ThreadLocal的学习记录。
没有在生产工作中使用过ThreadLocal,所以对ThreadLocal的概念比较模糊。
简单记录一下想法,以后再做论证。
1.ThreadLocal线程安全,线程安全的原因与同步方法或变量的原因不同,是因为ThreadLocal为每一条线程单独维护数据,数据在线程之间不共享,自然解决了多线程数据安全的问题。
2.ThreadLocal为每条线程单独维护数据,是以空间换时间。同步在同一时间只允许一条线程对同步数据/方法进行访问/操作,是以时间换空间。
3.ThreadLocal的数据结构类似于Map,值所存储的key为线程对象,仅提供简单的set(Object value)和get()方法。
4.等待设计程序去验证,等待考虑如何在生产中使用ThreadLocal。