从品牌网站建设到网络营销策划,从策略到执行的一站式服务
ThreadLocal原理及内存泄漏原因是什么,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
创新互联建站是一家专注于成都网站设计、做网站与策划设计,尚志网站建设哪家好?创新互联建站做网站,专注于网站建设10余年,网设计领域的专业建站公司;建站业务涵盖:尚志等地区。尚志做网站价格咨询:13518219792ThreadLocal有两个问题:
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原理及内存泄漏原因是什么问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注创新互联行业资讯频道了解更多相关知识。
成都网站建设公司地址:成都市青羊区太升南路288号锦天国际A座10层 建设咨询028-86922220
成都快上网科技有限公司-四川网站建设设计公司 | 蜀ICP备19037934号 Copyright 2020,ALL Rights Reserved cdkjz.cn | 成都网站建设 | © Copyright 2020版权所有.
专家团队为您提供成都网站建设,成都网站设计,成都品牌网站设计,成都营销型网站制作等服务,成都建网站就找快上网! | 成都网站建设哪家好? | 网站建设地图