采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
在set方法的代码里是把ThreadLocal对象作为key存在ThreadLocalMap里,是不是可以理解为只有一个ThreadLocalMap对象里存储了很多个ThreadLocal对象,那第一条获取到的currentThread的作用是什么,和ThreadLocal的关系是什么呢?
这是ThreadLocal和ThreadLocalMap的关系图,可以看到,一个线程Thread中存在一个ThreadLocalMap,ThreadLocalMap中的key对应ThreadLocal,在此处可见Map可以存储多个key即(ThreadLocal)。另外Value就对应着在ThreadLocal中存储的Value。因此总结出:每个Thread中都具备一个ThreadLocalMap,而ThreadLocalMap可以存储以ThreadLocal为key的键值对。这里解释了为什么每个线程访问同一个ThreadLocal,得到的确是不同的数值。
非常感谢!
登录后可查看更多问答,登录/注册
源于企业真实Java项目,涉及大量高级技巧,覆盖权限管理开发技术
2.4k 6
2.1k 22
1.4k 20
1.3k 20
1.1k 18