resize 方法主要是进行扩容,同时会将垃圾值标记方便 GC 回收,扩容后数组大小是原来数组的两倍 。
ThreadLocal 应用场景ThreadLocal 的特性也导致了应用场景比较广泛,主要的应用场景如下:
- 线程间数据隔离,各线程的 ThreadLocal 互不影响
- 方便同一个线程使用某一对象,避免不必要的参数传递
- 全链路追踪中的 traceId 或者流程引擎中上下文的传递一般采用 ThreadLocal
- Spring 事务管理器采用了 ThreadLocal
- Spring MVC 的 RequestContextHolder 的实现使用了 ThreadLocal
欢迎留言交流讨论,原创不易,觉得文章不错,请在看转发支持一下 。
更详细的源码解析可以点击链接查看:https://github.com/wupeixuan/JDKSourceCode1.8
参考
《Java并发编程实战》
https://www.javaspecialists.eu/archive/Issue164.html
https://mp.weixin.qq.com/s/vURwBPgVuv4yGT1PeEHxZQ
Java并发编程学习宝典
面试官系统精讲Java源码及大厂真题
Java 并发面试 78 讲
推荐阅读
- 一文看懂静态资源服务沉浮及其在携程的演进
- 一文理解HDFS
- 一文带你搞懂前端本地存储
- 一文带你了解不一样的SQL,惊喜多多
- iOS|iOS 16前的最后一个版本!iOS 15.5登场:一文了解详情
- 一文读懂Redis的dict字典数据结构
- 新疆维吾尔自治区|一文带你了解和田玉“前世今生”
- HDMI 2.0已淘汰!HDMI 2.1上位:一文看懂新接口优势
- 索尼|PS5存储扩容需要注意啥?一文读懂
- 一文读懂AI计算机视觉技术