简介
使用@Scheduled时,默认是单线程线程,spring中默认的配置如下,
这样的话,在使用@Scheduled时,其实都是单线程去执行的,我们可以使用@Async来使用线程池进行异步的调度。
自定义线程池:
// 名字必须是 taskExecutor
@Bean(name = "taskExecutor")
ThreadPoolTaskExecutor taskExecutor(TaskExecutorBuilder builder) {
ThreadPoolTaskExecutor taskExecutor = builder.build();
taskExecutor.setThreadNamePrefix("interface-handle-thread-");
return taskExecutor;
}
测试:
可以看到使用@Async注解的已经应用了线程池配置,没有用的还是之前的单线程