ThreadLocal面试 ?

一、ThreadLocal是什么 ?
ThreadLocal很容易让人望文生义,想当然地认为是一个“本地线程”。其实,ThreadLocal并不是一个Thread,而是Thread的局部变量,也许把它命名为ThreadLocalVariable更容易让人理解一些,
即:线程变量
当使用ThreadLocal维护变量时,ThreadLocal为每个使用该变量的线程提供独立的变量副本,所以每一个线程都可以独立地改变自己的副本,而不会影响其它线程所对应的副本。

二、ThreadLocal怎么用

三、ThreadLocal源码分析

四、ThreadLocal内存泄漏问题
ThreadLocal是一个弱引用,当为null时,会被当成垃圾回收。

重点来了,突然ThreadLocal是null了,也就是要被垃圾回收器回收了,但是此时我们的ThreadLocalMap生命周期和Thread的一样,它不会回收,这时候就出现了一个现象。那就是ThreadLocalMap的key没了,但是value还在,这就造成了内存泄漏。

解决办法:使用完ThreadLocal后,执行remove操作,避免出现内存溢出情况。

五、学习链接(后期补充,暂时仅用于面试)
学习链接
链接1:https://blog.csdn.net/qjyong/article/details/2158097

链接2:https://baijiahao.baidu.com/s?id=1653790035315010634&wfr=spider&for=pc

链接3:https://www.cnblogs.com/fsmly/p/11020641.html

ThreadLocal类有一个实例变量threadLocals,它的类型是ThreadLocal.ThreadLocalMap。这意味着每个线程都有自己的ThreadLocalMap。ThreadLocal的作用是管理线程Thread中的属性threadLocals。ThreadLocal通过提供get和set方法,使得每个线程都可以独立地访问和修改自己的ThreadLocalMap。 ThreadLocalMap中存储了线程局部变量的键值对,其中键是ThreadLocal对象,值是线程局部变量的值。这样,每个线程都可以独立地存储和获取自己的线程局部变量。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [面试官:听说你看过ThreadLocal源码?我来瞅瞅?](https://blog.csdn.net/l18848956739/article/details/106122096)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [ThreadLocal_ThreadLocal源码分析_](https://download.csdn.net/download/weixin_42666807/25851858)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [13]ThreadLocal是什么?有哪些用途?你了解多少?](https://blog.csdn.net/wu6cfp38/article/details/119494334)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值