请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

ThreadLocalMap是不是存储了很多个ThreadLocal对象?

在set方法的代码里是把ThreadLocal对象作为key存在ThreadLocalMap里,是不是可以理解为只有一个ThreadLocalMap对象里存储了很多个ThreadLocal对象,那第一条获取到的currentThread的作用是什么,和ThreadLocal的关系是什么呢?

正在回答

1回答

https://img1.sycdn.imooc.com//szimg/5b476a030001a6c511600908.jpg

这是ThreadLocal和ThreadLocalMap的关系图,可以看到,一个线程Thread中存在一个ThreadLocalMap,ThreadLocalMap中的key对应ThreadLocal,在此处可见Map可以存储多个key即(ThreadLocal)。另外Value就对应着在ThreadLocal中存储的Value。因此总结出:每个Thread中都具备一个ThreadLocalMap,而ThreadLocalMap可以存储以ThreadLocal为key的键值对。这里解释了为什么每个线程访问同一个ThreadLocal,得到的确是不同的数值。

1 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信