一、前言
看完这篇文教你怎样biu的佛的打印日志
二、线程池配置
执行异步人任务时,需要将执行的任务放入到线程池中,所以需配置好我们的线程池,比如 核心线程大小 、 最大可创建的线程数 和 队列长度 等。
2.1 基本参数配置
@Configuration
public class ThreadPoolConfig {
/**
* 核心线程池大小
*/
private int corePoolSize = 50;
/**
* 最大可创建的线程数
*/
private int maxPoolSize = 200;
/**
* 队列最大长度
*/
private int queueCapacity = 1000;
/**
* 线程池维护线程所允许的空闲时间
*/
private int keepAliveSeconds = 300;
......
......
}
配置好基本的参数后,我们需要用这些参数初始化 ThreadPoolTaskExecutor 线程池任务执行器:
2.2 初始化任务执行器
@Bean(name = "threadPoolTaskExecutor")
public ThreadPoolTaskExecutor threadPoolTaskExecutor() {
// 创建线程池任务执行器对象
ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
// 设置核心线程池大小
executor.setCorePoolSize(corePoolSize);
// 设置最大可创建的线程数
executor.setMaxPoolSize(maxPoolSize);
// 设置队列最大长度
executor.setQueueCapacity(queueCapacity);
// 设置线程池维护线程所允许的空闲时间
executor.setKeepAliveSeconds(keepAliveSeconds);
// 线程池对拒绝任务(无线程可用时)的处理策略
executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy());
return executor;
}
注意:@Bean 注解不能少,直接将其交 Spring 容器管理,后面可以通过 getBean() 方法拿到方法返回的实例。
@Be