@Configuration
@EnableAsync
public class ExecutorConfig {
/**
* 线程池维护线程的最少数量
*/
private int corePoolSize = 5;
/**
* 线程池维护线程的最大数量
*/
private int maxPoolSize = 20;
/**
* 缓存队列
*/
private int queueCapacity = 5;
/**
* 允许的空闲时间,单位秒(S)
*/
private int keepAlive = 30;
@Bean
public Executor taskExecutor() {
ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
executor.setCorePoolSize(corePoolSize);
executor.setMaxPoolSize(maxPoolSize);
executor.setQueueCapacity(queueCapacity);
executor.setThreadNamePrefix("boot-executor-");
executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy());
executor.setKeepAliveSeconds(keepAlive);
executor.initialize();
return executor;
}
}
注入后调用:
executor.execute(new Runnable() {
@Override
public void run() {
/**执行的业务*/
}
});