在主线程中开启异步线程任务时,主线程的信息时无法直接传递到子线程中,此时需要通过线程池实现上下文信息的传递
案例如下
package com.eno.config.thread;
import java.util.Map;
import java.util.concurrent.Callable;
import java.util.concurrent.Future;
import java.util.concurrent.ThreadPoolExecutor;
import org.apache.commons.collections.MapUtils;
import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.slf4j.MDC;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
import org.springframework.util.concurrent.ListenableFuture;
public class ThreadPoolTaskExecutorWapper extends ThreadPoolTaskExecutor {
private static final long serialVersionUID = 1L;
private static final Logger logger = LoggerFactory.getLogger(ThreadPoolTaskExecutorWapper.class);
/**
* 打印线程池信息
* @param prefix
*/
private void showThreadPoolInfo(String prefix) {
ThreadPoolExecutor threadPoolExecutor = getThreadPoolExecutor