ThreadLocal原理及内存泄漏原因是什么

ThreadLocal原理及内存泄漏原因是什么,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

成都创新互联从2013年成立,先为安吉等服务建站,安吉等地企业,进行企业商务咨询服务。为安吉企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。

ThreadLocal有两个问题:

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

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

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

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

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

get方法

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

set方法

根据当前线程获取当前线程的map,然后设置当前线程的值,

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

ThreadLocal为什么会引起内存泄漏

ThreadLocal的弱引用作为key,如果gc想要回收的时候,ThreadLcoal必然回收,Thread ref -> Thread ->ThreadLocalMap->Entry->value这个强引用一直就会存在,造成内存泄漏

关于ThreadLocal原理及内存泄漏原因是什么问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注创新互联行业资讯频道了解更多相关知识。


文章题目:ThreadLocal原理及内存泄漏原因是什么
标题网址:http://bzwzjz.com/article/ipeseg.html

其他资讯

Copyright © 2007-2020 广东宝晨空调科技有限公司 All Rights Reserved 粤ICP备2022107769号
友情链接: 成都网站制作 企业网站建设公司 高端网站设计 重庆网站建设 网站制作 成都做网站建设公司 企业网站建设 成都营销网站建设 营销型网站建设 成都网站建设 网站制作 成都网站设计 成都网站设计 成都网站制作 手机网站设计 成都网站设计 专业网站设计 成都网站建设公司 手机网站制作 成都品牌网站设计 成都网站建设 成都网站设计公司