声明一个线程池
使用@EnableAsync注解开启spring异步方法执行。
备注:这里开启了@EnableAsync,启动文件可以不用注解@EnableAsync。
@Configuration
@EnableAsync
public class ThreadPoolConfig {
/**
* 声明一个线程池
* @return 执行器
*/
@Bean(name = "ThreadPoolJdbcSelect")
public ThreadPoolTaskExecutor createExecutorThreadPoolJdbcSelect() {
ThreadPoolTaskExecutor threadPoolTaskExecutor = new ThreadPoolTaskExecutor();
//核心线程数10:线程池创建时候初始化的线程数
threadPoolTaskExecutor.setCorePoolSize(20);
//最大线程数15:线程池最大的线程数,只有在缓冲队列满了之后才会申请超过核心线程数的线程
threadPoolTaskExecutor.setMaxPoolSize(20);
//缓冲队列500:用来缓冲执行任务的队列
threadPoolTaskExecutor.setQueueCapacity(60);
//允许线程的空闲时间60秒:当超过了核心线程出之外的线程在空闲时间到达之后会被销毁
threadPoolTaskExecutor.setKeepAliveSeconds(60);
//线程池名的前缀:设置好了之后可以方便我们定位处理任务所在的线程池
threadPoolTaskExecutor.setThreadNamePrefix("ThreadPoolJdbcSelect");
//线程池对拒绝任务的处理策略
threadPoolTaskExecutor.setRejectedExecutionHandler(new ThreadPoolExecutor.AbortPolicy());
threadPoolTaskExecutor.initialize();
return threadPoolTaskExecutor;
}
}<