欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 金融 > ThreadLocal

ThreadLocal

2025/7/5 12:30:11 来源:https://blog.csdn.net/yudilan6/article/details/143561108  浏览:    关键词:ThreadLocal

ThreadLocal使用场景

        threadLocal就在是线程间做参数传递的。比如事务控制,需要Service和Mapper使用同一个Connection,那就可以基于ThreadLocal做参数的传递。

        链路追踪,想记录当前线程的整条日志信息,也可以基于ThreadLocal存储traceID.

        Token:在Filter中,从请求头里面获取到了Token,后期需要在Controller使用,也可以基于ThreadLocle传递Token信息。

        本质上,ThreadLocal不做数据存储,真正存储数据的是每个线程Thread对象中的ThreadLocalMap属性,真正存储数据的容器是Thread类中的ThreadLocalMap

        

子线程如何获取到父线程中的属性信息

        可以采用共享变量的方式来进行线程间数据的传递。

        还可以直接使用Java中提供的InheritableThreadLocal类来实现这个操作。InteritableThreadLocal就是在父线程创建子线程时,将父线程设置到InteritableThreadLocal中的数据直接迁移一份到子线程的InheritableThreadLocal中。在创建子线程时,会执行Thread的init方法,在init方法中,默认会做InteritableThreadLocal中的数据传递逻辑,只要父线程中的InteritableThreadLocal里面有数据,就会做迁移操作,直接将父线程的interitableThreadLocals中的数据一个一个的拷贝到子线程的interitableThreadLocals里面,inheritableThreadLocals就是ThreadLocalMap.

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词