码迷,mamicode.com
首页 > 其他好文 > 详细

ThreadLocal原理及内存泄漏

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

标签:存储   adl   oca   问题   get   com   一个   是什么   ima   

ThreadLocal原理及内存泄漏

ThreadLocal有两个问题:

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

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


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

技术分享图片

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

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

get方法

技术分享图片

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

set方法

技术分享图片

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

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

 

ThreadLocal原理及内存泄漏

标签:存储   adl   oca   问题   get   com   一个   是什么   ima   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!