一、配置
@Configuration
@EnableAsync //启用异步任务
public class ThreadPoolConfig {
@Bean("taskExecutor")
public ThreadPoolTaskExecutor executor(){
ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
//配置核心线程数
executor.setCorePoolSize(15);
//配置最大线程数
executor.setMaxPoolSize(30);
//配置队列大小
executor.setQueueCapacity(1000);
//线程的名称前缀
executor.setThreadNamePrefix("Executor-");
//线程活跃时间(秒)
//executor.setKeepAliveSeconds(60);
//等待所有任务结束后再关闭线程池
executor.setWaitForTasksToCompleteOnShutdown(true);
//设置拒绝策略
//executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy());
//执行初始化
executor.initialize();
return executor;
}
}
二、使用
方法上使用,添加 @Async("asyncServiceExecutor")
方法内使用:
@Autowired
private ThreadPoolTaskExecutor executor;
final CountDownLatch countDownLatch = new CountDownLatch(j);
三、执行流程
四、注意点
Original: https://www.cnblogs.com/a999/p/16478202.html
Author: 生生灯火半杯月
Title: SpringBoot-多线程
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/643745/
转载文章受原作者版权保护。转载请注明原作者出处!