关于ThreadLocal中get方法的疑惑

u010980545 2016-03-10 08:03:23
ThreadLocal类中get方法的作用是获取属于当前线程的变量的副本,其定义如下:

在从ThreadLocalMap中拿变量的副本的时候,使用的键是this,也就是ThreadLocal对象。
我的理解:ThreadLocal对象是所有线程共有的,在线程中通过ThreadLocal对象的get方法来拿变量的时候,因为不同的线程使用的都是ThreadLcoal对象作为键从Map中取值,那么不同的线程拿到的岂不是同一个Entry?还请知道的高人解释下。
...全文
848 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
u010980545 2016-03-11
  • 打赏
  • 举报
回复
已经看明白了,还是谢谢楼上两位的回复
oh_Maxy 版主 2016-03-11
  • 打赏
  • 举报
回复
最重要的应该是第三行,getMap(t);
wu244534279 2016-03-11
  • 打赏
  • 举报
回复
ThreadLocalMap map = getMap(t); 在这一行就区分出了不同的线程取到不同的ThreadLocalMap 所以后面当然不会出现不同线程取到同一个entity的问题了
u010980545 2016-03-10
  • 打赏
  • 举报
回复
自己来回复一下,求别沉

50,528

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧