本文主要是介绍Thread ThreadLocal ThreadLocalMap 关系,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1 . Thread 类里有一个变量,是 ThreadLocalMap 类型的,名为 threadLocals;
2. ThreadLocalMap 的 key 为 ThreadLocal 变量引用, value 即为 ThreadLocal 存储的值;
3. 一般使用方法是建一个独立的类,里边存放 ThreadLocal 常量,以供其他线程使用
class MyThreadLocal {
private static final ThreadLocal<Object> threadLocal = new ThreadLocal<Object>();
}
当时执行 MyThreadLocal.threadLocal.set(xxx) 时,
首先获取执行该 set 语句的当前线程,据此找到其 ThreadLocalMap,然后再以 threadLocal 引用作为 key,设置对应的 value;
当执行 MyThreadLocal.threadLocal.get() 时,
首先获取执行该 get 语句的当前线程,据此找到其 ThreadLocalMap,然后再以 threadLocal 引用作为 key,找到对应的 value;
整体来看,查找定位过程遵循两步走:current thread -> threadlocal map -> threadlocal value
这篇关于Thread ThreadLocal ThreadLocalMap 关系的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!