在SpringBoot中,频繁创建线程比较消耗性能,所以采用线程池的形式
1、定义ThreadPoolTaskExecutor
2、在SpringBean方法上添加 @Async("serviceTask")注解即可
@EnableAsync
@Configuration
public class ThreadPoolConfig {
@Bean("serviceTask")
public ThreadPoolTaskExecutor serviceTask() {
ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
executor.setCorePoolSize(10);
executor.setMaxPoolSize(20);
executor.setQueueCapacity(10);
executor.setKeepAliveSeconds(60);
executor.setThreadNamePrefix("service-task");
executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy());
return executor;
}
}