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

来源:2-2 Spring Security常用权限拦截器讲解

北斗神拳1984

2018-07-12

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

写回答

1回答

Jimin

2018-07-12

//img.mukewang.com/szimg/5b476a030001a6c511600908.jpg

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

1
1
北斗神拳1984
非常感谢!
2018-07-13
共1条回复

Java开发企业级权限管理系统

源于企业真实Java项目,涉及大量高级技巧,覆盖权限管理开发技术

2261 学习 · 1347 问题

查看课程