Spring Boot 异步运用

使用@Async标签 导入包 org.springframework.scheduling.annotation.Async 并配置并发线程池asyncTaskConfig 实现AsyncConfigurer接口 连接池注解 @EnableAsync @Configure

重写接口getAsyncExecutor方法 并返回ThreadPoolTaskExecutor实例 实例化ThreadPoolTaskExecutor 并对其进行初始化:corePoolSize(最小线程数)、maxPoolSize(最大线程数)、QueueCapacity(等待队列)、AwaitTerminationSecond(设置线程池任务等待时间 超过时间强制关闭)、WaitForTasksToCompleteOnShutdown(TRUE/false设置线程池关闭时间等待所有任务完成再继续销毁其他bean) 、initialize 实例化后返回实例。

重写getAsyncUncaughtExceptionHandler()方法

在application类中 加EnableAsync注解

如需等待异步返回结果

则需引入org.springframework.scheduling.annotation.AsyncResult以及util.concurrent.Future

异步服务返回值Future<集合>

异步等待关键词

CountDownLatch、CyclicBarrier、Semaphore

talk is cheap. show me the code.
原文地址:https://www.cnblogs.com/yushizhang/p/10368319.html