使用TransmittableThreadLocal实现参数跨线程传递

  1. 创建ThreadLocalContext
public class ThreadLocalContext {

    public static TransmittableThreadLocal<SystemParams> systemParamsThreadLocal = new TransmittableThreadLocal<>();
}
  1. 赋值
ThreadLocalContext.systemParamsThreadLocal.set(systemParamsDTO);
  1. 线程池配置
@Configuration
public class ThreadPoolConfig {

    @Bean
    public ExecutorService threadPoolExecutor(){
        return  TtlExecutors.getTtlExecutorService(new ThreadPoolExecutor(
                10, 1000,30000L, TimeUnit.SECONDS,
                new LinkedBlockingQueue<Runnable>(2000),
                new CustomizableThreadFactory("thread-pool-"),
                RejectPolicy.ABORT.getValue()));
    }
}

你可能感兴趣的:(线程池,ThreadLocal,跨线程)