1.jdk 自带的InheritableThreadLocal 只针对父子线程 有效,针对线程池失效
private static final ThreadLocal<List<Map>> threadLocal= new InheritableThreadLocal<>();
2.使用阿里的transmittable-thread-local 可以解决线程池内的threadLocal 问题
线程池修不修饰都行
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>transmittable-thread-local</artifactId>
<version>2.2.0</version>
</dependency>
static TransmittableThreadLocal<String> threadLocal = new TransmittableThreadLocal<>();
static ExecutorService pool = TtlExecutors.getTtlExecutorService(Executors.newFixedThreadPool(2));