TransmittableThreadLocal
TransmittableThreadLocal
是一个来自于 Alibaba 开源的 Java 库 TransmittableThreadLocal (TTL) 的类。这个库解决了在使用线程池等多线程框架时,InheritableThreadLocal
不能正确传递父线程上下文到子线程的问题。TransmittableThreadLocal
可以在父线程创建的子线程中传递和恢复线程上下文,特别适用于分布式系统中的上下文传递。
1.线程间值传递:任务之间的数据传递
如日志链路追踪,用户会话信息
跨组件的数据传递
2.避免内存泄漏:remove
3.集成与扩展:提供与标准threadloacal的良好集成
使用:
使用TtlRunnable get(@Nullable Runnable runnable)装饰Runnable或使用TtlCallable get(@Nullable Callable callable)装饰callable
ExecutorService getTtlExecutorService(@Nullable ExecutorService executorService)装饰executorService