快速开始
依赖
不需要额外的依赖包,集成在spring-context内
配置
import java.util.concurrent.Executor;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.annotation.AsyncConfigurer;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
@Configuration
@EnableAsync//开启异步线程功能
public class AsyncConfig implements AsyncConfigurer {
@Override
public Executor getAsyncExecutor() {
//定义线程池
ThreadPoolTaskExecutor taskExecutor = new ThreadPoolTaskExecutor();
//核心线程数
taskExecutor.setCorePoolSize(10);
//线程池最大线程数
taskExecutor.setMaxPoolSize(30);
//线程队列最大线程数
taskExecutor.setQueueCapacity(2000);
//初始化
taskExecutor.initialize();
return taskExecutor;
}
}使用
开启一部线程使用@Async
结果
可以看出来,执行@Async方法时,使用的是我们自己线程池中的线程执行的
Last updated
Was this helpful?