ThreadLocal的value为什么不设置成弱引用
时间: 2023-10-20 17:34:38 浏览: 193
ThreadLocal的value不能设置成弱引用的原因是,如果value也为弱引用,那么在获取value的时候会得到null值。这是因为在ThreadLocal的实现中,线程通过ThreadLocalMap来管理ThreadLocal对象和对应的值,而ThreadLocalMap中的Entry对象中保存了对ThreadLocal对象的弱引用以及对应的值。如果value也为弱引用,那么当进行垃圾回收的时候,value所引用的对象可能会被回收,导致在获取value的时候得到null值。因此,为了保证ThreadLocal的value的可用性和正确性,value不能设置成弱引用。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [玩碎Java之ThreadLocal的原理](https://blog.csdn.net/yuan882696yan/article/details/125471911)[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: 100%"]
[ .reference_list ]
阅读全文