spring boot 通过任务执行器 taskexecutor 来实现多线程和并发编程。 使用threadpooltaskExecutor 可实现一个基于线程池的taskexecutor
spring boot 要实现多线程 首先需要创建一个配置类
@Configuration
@EnableAsync //开启异步任务支持
public class SpringTaskExecutor implements AsyncConfigurer{ //实现AsyncConfigurer接口,重写getAsyncExecutor方法,返回一个基于线程池的taskExecutor
@Override
public Executor getAsyncExecutor() {
ThreadPoolTaskExecutor taskExecutor=new ThreadPoolTaskExecutor();
taskExecutor.setCorePoolSize(5);
taskExecutor.setMaxPoolSize(10);
taskExecutor.setQueueCapacity(20);
taskExecutor.initialize();
return taskExecutor;
}
@Override
public AsyncUncaughtExceptionHandler getAsyncUncaughtExceptionHandler() {
return new SimpleAsyncUncaughtExceptionHandler();
}
}
接下来进行任务实现类的编写
通过该注解表明该方法是一个异步方法,这里的方法会自动被注入使用 thread pool task
@Service
public class AsyncTaskService {
&