首页 > 其他 > 详细

ThreadLocal原理及内存泄漏

时间:2018-04-27 02:00:45      阅读:223      评论:0      收藏:0      [点我收藏+]

ThreadLocal原理及内存泄漏

ThreadLocal有两个问题:

1. 每个变量副本是存储在哪了?

2. 变量副本是怎样从共享的变量中赋值出来的?源码中threadlocal的初始值是什么时候设置的。


 ThreadLocal为每个线程维护一个变量的副本?

技术分享图片

每个线程的ThreadLocalMap都是线程自身持有的,但是初始化是在ThreadLocal中,然后每个线程相当于保存了一个map

这个map存的key是Thread的实例,value是存储的线程的局部变量

get方法

技术分享图片

根据当前线程获取Thread中的值

set方法

技术分享图片

根据当前线程设置当前线程的值,

从而保证每个线程的值都是从自己的ThreadMap中获取

 

ThreadLocal原理及内存泄漏

原文:https://www.cnblogs.com/zhangchiblog/p/8955566.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!