當前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
Spring Boot 2.x多线程--使用@Async开启多线程使用示例
生活随笔
收集整理的這篇文章主要介紹了
Spring Boot 2.x多线程--使用@Async开启多线程使用示例
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Spring Boot 2.x多線程–使用@Async開啟多線程,配置類+啟動類注解,搞定多線程任務。
配置類TaskPoolConfig.java
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; import java.util.concurrent.Executor; import java.util.concurrent.ThreadPoolExecutor;/*** @ProjectName springbootdemo_src* @ClassName TaskPoolConfig* @Desicription TODO* @Author Zhang Xueliang* @Date 2019/5/15 10:10* @Version 1.0**/ @Configuration public class TaskPoolConfig {@Bean("taskExecutor-zhangxueliang")public Executor taskExecutor() {ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();executor.setCorePoolSize(10);//核心線程數目executor.setMaxPoolSize(20);//指定最大線程數executor.setQueueCapacity(200);//隊列中最大的數目executor.setKeepAliveSeconds(60);//線程空閑后的最大存活時間executor.setThreadNamePrefix("zhangxueliang-taskExecutor-");//線程名稱前綴executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy());executor.initialize();return executor;} }在啟動類ZxlDemoApplication.java添加@EnableAsync注解(注意:@EnableAsync注解既可以添加到啟動類也可以直接添加到配置類上面,效果一樣。如果要掃描特定的包,使用@ComponentScan包掃描注解指定報名即可)
@SpringBootApplication @EnableAsync//開啟異步 public class ZxlDemoApplication {public static void main(String[] args) {SpringApplication.run(ZxlDemoApplication.class, args);}}使用@Async注解標注要使用多線程的方法或類,加在類上,該類所有的方法都將是異步執行。
@Asyncpublic Future<String> doReturn(int i){logger.info(">>>>>>>>>>>>>>線程名>>>>>>>>>>>>>>"+Thread.currentThread().getName());try {// 這個方法需要調用500毫秒Thread.sleep(500);} catch (InterruptedException e) {e.printStackTrace();}// 消息匯總return new AsyncResult<>(String.format("這個是第{%s}個異步調用的證書", i));}總結
以上是生活随笔為你收集整理的Spring Boot 2.x多线程--使用@Async开启多线程使用示例的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Spring 已经实现的线程池
- 下一篇: Java线程池--拒绝策略Rejecte