spring boot的线程池使用
使用时,只需要新建一个BeanConfig类,在该类的方法里设置线程池的属性
设置:
@Configuration
@EnableAsync
public class BeanConfig {
@Bean
public TaskExecutor taskExecutor() {
ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
// 设置核心线程数
executor.setCorePoolSize(5);
// 设置最大线程数
executor.setMaxPoolSize(10);
// 设置队列容量
executor.setQueueCapacity(20);
// 设置线程活跃时间(秒)
executor.setKeepAliveSeconds(60);
// 设置默认线程名称
executor.setThreadNamePrefix("hello-");
// 设置拒绝策略
executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy());
// 等待所有任务结束后再关闭线程池
executor.setWaitForTasksToCompleteOnShutdown(true);
return executor;
}
}
调用:
@Component
public class Hello {
@Async("taskExecutor")
public void sayHello(String name) {
LoggerFactory.getLogger(Hello.class).info(name + ":Hello World!");
}
}
本文章参考以下文章
参考:https://www.cnblogs.com/yw0219/p/8810956.html

浙公网安备 33010602011771号