TransmittableThreadLocal是阿里开源的一个类,主要目的是处理父子线程变量不能共用的情况。ThreadLocal是跟当前线程挂钩的,所以脱离当前线程它就起不了作用。

  • ThreadLocal

场景:它的应用就是比如当前用户特有的一些属性,不能跟其他线程,用户共用。

  • TransmittableThreadLocal

场景:就是父子线程或者不同线程需要共用一些变量。举个例子:之前在肥朝哥群里,肥大一直叼胃口,因为全链路日志是自研的嘛,没有sleuth等等框架的支持,所以像MDC这些全局变量,在多线程里头就失效了。

有人觉得打印log不就完事了吗?

链路日志就是为了把请求参数,整个链路打印出来,看出性能问题,以及报错的前因后果。

有了TransmittableThreadLocal就不破自解了。

作者:Jeebiz  创建时间:2023-07-04 11:35
最后编辑:Jeebiz  更新时间:2023-12-22 21:09