今天看开源项目的代码,看见了一个类叫TransmittableThreadLocal为什么要把对象set进去!

今天看开源项目的代码,看见了一个类叫TransmittableThreadLocal为什么要把对象set进去!
这个类有什么作用啊?
在什么场景下会用到?
有什么好处?

阅读 2.5k
1 个回答

TransmittableThreadLocal这个类是来自阿里的一个开源项目:https://github.com/alibaba/tr...。为什么会出现这个类是为了解决例如使用线程池、Tomcat这类缓存线程组件,如ThreadPoolExecutor、tomcat线程池的时候,某一线程中的数据和ThreadLocal等在没有删除或者解绑的情况下,会被下一个Runable类或者Http请求复用。而在提交任务给线程池时,而TransmittableThreadLocal为了解决这个问在提交任务给线程池时,将ThreadLocal数据一起提交,相当于重新set一次ThreadLocal。

推荐问题