国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

SpringBoot中的異步多線程使用及避坑指南

開發 前端
Spring Boot提供了@Async注解來支持異步方法調用,結合合適的線程池配置,可以很容易地實現異步多線程處理,提升系統的并發能力和性能。

在現代的Web應用開發中,處理請求時需要考慮到系統的性能和響應速度。特別是在處理大量請求或者需要進行耗時操作時,采用異步多線程處理是一種常見的解決方案。Spring Boot提供了@Async注解來支持異步方法調用,結合合適的線程池配置,可以很容易地實現異步多線程處理,提升系統的并發能力和性能。

今日內容介紹,大約花費9分鐘

圖片圖片

1.配置線程池

@Configuration
@EnableAsync
public class AsyncConfiguration {
    @Bean("doSomethingExecutor")
    public Executor doSomethingExecutor() {
        ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
        // 核心線程數:線程池創建時候初始化的線程數
        executor.setCorePoolSize(10);
        // 最大線程數:線程池最大的線程數,只有在緩沖隊列滿了之后才會申請超過核心線程數的線程
        executor.setMaxPoolSize(20);
        // 緩沖隊列:用來緩沖執行任務的隊列大小
        executor.setQueueCapacity(500);
        // 允許線程的空閑時間60秒:當超過了核心線程之外的線程在空閑時間到達之后會被銷毀
        executor.setKeepAliveSeconds(60);
        executor.setThreadNamePrefix("do-something-");
          // 緩沖隊列滿了之后的拒絕策略:由調用線程處理(一般是主線程
        executor.setRejectedExecutionHandler(new ThreadPoolExecutor.DiscardPolicy());
        executor.initialize();
        return executor;
    }
}

在這個配置中,我們使用了ThreadPoolTaskExecutor作為線程池的實現,并且設置了一些關鍵參數,如核心線程數、最大線程數、緩沖隊列大小等。如果不太了解線程池的小伙伴可以看一下之前介紹線程池介紹線程池的核心參數,線程池的執行原理知道

2. @Async注解

在需要異步執行的方法上使用@Async注解。這樣的方法將會在一個單獨的線程中執行,而不會阻塞主線程。

@Slf4j
@Service
public class AsyncService {
   // 指定使用beanname為doSomethingExecutor的線程池
    @Async("doSomethingExecutor")
    public  CompletableFuture<String> doSomething(String message) throws InterruptedException {
        log.info("doSomethingExecutor thread name  ={}", Thread.currentThread().getName());
        Thread.sleep(1000);
        return CompletableFuture.completedFuture(message);
    }
}

doSomething()方法被標記為異步方法,并且指定了使用名為"doSomethingExecutor"的線程池進行執行。

3. 異步多結果聚合返回CompletableFuture

在某些情況下,我們可能需要等待多個異步任務執行完畢后再進行下一步操作,這時可以使用CompletableFuture來實現異步多結果的聚合。

@RestController
@RequestMapping
public class AsyncController {

    @Autowired
    private AsyncService asyncService;


    @GetMapping("/open/somethings")
    public List<String> somethings() throws InterruptedException {
        int count = 6;
        List<CompletableFuture<String>> futures = new ArrayList<>();
        List<String> results = new ArrayList<>();
        // 啟動多個異步任務,并將 CompletableFuture 對象存儲在列表中
        for (int i = 1; i < count; i++) {
            CompletableFuture<String> future = asyncService.doSomething("index: "+i);
            futures.add(future);
        }
        
        for (CompletableFuture<String> future : futures) {
            String result = future.get(); // 阻塞等待異步任務完成并獲取結果
            results.add(result);
        }
        return results;
    }
}

我們通過循環啟動了多個異步任務,將返回的 CompletableFuture 對象存儲在列表中。然后,我們再次循環遍歷這些 CompletableFuture 對象,并調用 get() 方法來阻塞等待異步任務完成,獲取結果。最后,將結果添加到結果列表中并返回

4. 測試

使用瀏覽器發送http://localhost:8888/open/somethings,結果如下

圖片圖片

發現使用多個線程執行方法

圖片圖片

5.注意事項

@Async注解會在以下幾個場景失效,使用了@Async注解,但就沒有走多線程:

  • 異步方法使用static關鍵詞修飾;
  • 異步類不是一個Spring容器的bean(一般使用注解@Component和@Service,并且能被Spring掃描到);
  • SpringBoot應用中沒有添加@EnableAsync注解;
  • 在同一個類中,一個方法調用另外一個有@Async注解的方法,注解不會生效。原因是@Async注解的方法,是在代理類中執行的。

異步方法使用注解@Async的返回值只能為void或者Future及其子類,當返回結果為其他類型時,方法還是會異步執行,但是返回值都是null

責任編輯:武曉燕 來源: springboot葵花寶典
相關推薦

2021-09-16 19:22:06

Java概念concurrent

2025-02-26 08:13:23

2020-09-13 09:19:10

LinuxPython3.6

2024-04-24 13:45:00

2024-04-03 12:30:00

C++開發

2021-02-26 00:46:11

CIO數據決策數字化轉型

2024-08-26 08:29:55

2020-12-16 10:00:59

Serverless數字化云原生

2018-01-20 20:46:33

2023-05-24 10:06:42

多云實踐避坑

2021-05-07 21:53:44

Python 程序pyinstaller

2021-05-08 12:30:03

Pythonexe代碼

2022-03-04 18:11:16

信服云

2021-02-22 17:00:31

Service Mes微服務開發

2025-02-24 00:10:00

2020-06-12 11:03:22

Python開發工具

2025-04-27 00:04:00

C#異步編程

2021-04-28 09:26:25

公有云DTS工具

2020-08-26 07:37:25

Nacos微服務SpringBoot

2023-11-01 15:32:58

點贊
收藏

51CTO技術棧公眾號

婷婷六月天在线| 99re99热| 中文字幕不卡三区视频| 久久久一区二区三区捆绑**| 91人成网站www| 亚洲精品在线国产| 亚洲国产日韩一区| 欧美男男同志| 自拍偷在线精品自拍偷无码专区 | 欧洲视频在线免费观看| 不卡在线视频中文字幕| 精品国产一区二区三区日日嗨 | 91精品综合久久| 美国十次综合久久| 亚洲精品国产拍免费91在线| 国产精品69页| 粉嫩嫩av羞羞动漫久久久| 欧美视频1区| 黄色在线成人| 国产欧美在线视频| 久久久精品国产**网站| 在线成人激情黄色| 女厕盗摄一区二区三区| 日韩午夜激情免费电影| 国产片在线观看| 午夜视频一区在线观看| 国产国产国产国产国产国产| 欧美国产激情二区三区| 亚洲美免无码中文字幕在线| 国产福利精品一区| 91麻豆天美传媒在线| 久久精品国产99| 中文字幕日韩一区二区三区不卡| 久久狠狠婷婷| 午夜精品视频在线观看一区二区| 裸体素人女欧美日韩| 欧洲一区二区在线| 老鸭窝91久久精品色噜噜导演| 国产精品一区二区a| 91精品国产自产拍在线观看蜜| 国产精品入口免费视| 欧美www视频在线观看| 国产在线久久久| 66视频精品| 97伦理在线四区| 亚洲精品影视| 日本视频精品一区| 国产一区二三区好的| 欧美啪啪免费视频| 久久精品这里都是精品| 99色在线视频| 午夜精品视频一区| 国产中文字幕在线观看| 777亚洲妇女| 345成人影院| 欧美黄色www| 激情五月综合网| 成人免费视频网站入口| 香蕉久久国产| 男人j进女人j| 欧美激情一区二区在线| 在线成人动漫| 欧美精品亚洲二区| 成人美女黄网站| 97在线观看视频国产| 91精品国产91久久综合| 天堂社区 天堂综合网 天堂资源最新版| 国产资源精品在线观看| 国产精品久久久毛片| 午夜av区久久| 97在线视频免费观看完整版| 久久综合免费视频| 欧美xxxx中国| 在线观看国产一区| 国产欧美精品一区| 国产黄色片在线播放| 亚洲人午夜精品| 亚洲精品国产setv| 欧日韩一区二区三区| 国产无人区一区二区三区| 久青青在线观看视频国产| 亚洲色图美腿丝袜| 国产精品午夜一区二区三区| 久久资源亚洲| 国产亚洲成aⅴ人片在线观看 | 成人性生交大片免费看中文网站| 精品久久久久av| 色综合天天做天天爱| 欧美调教sm| 国产成人精品一区二区在线| 视频一区视频二区中文| 中国黄色片免费看| 91麻豆精品国产91久久久资源速度| 日本精品在线中文字幕| 国产精品日韩精品| 极品少妇xxxx精品少妇| 男人天堂v视频| 亚洲欧美日韩国产中文专区| 日本a口亚洲| 大j8黑人w巨大888a片| 91黄色免费版| 亚洲大奶少妇| 欧美日韩在线播放一区二区| 欧美激情一区二区| 黄色免费网站在线观看| 久久久久久亚洲精品中文字幕| 国产精品人人爽人人做我的可爱| 性欧美极品xxxx欧美一区二区| 欧美乱妇一区二区三区不卡视频| 亚洲三级av| 正在播放一区| 色94色欧美sute亚洲线路一久 | 亚洲欧洲精品在线观看| 国产精品国产三级国产aⅴ入口 | 国产婷婷成人久久av免费高清| 亚洲小说图片| 欧美日韩午夜爽爽| 欧美性一区二区| 啪啪激情综合网| 激情小视频网站| 欧美一区二区三区不卡| 欧美色图激情小说| 日本女优爱爱视频| 国产午夜精品久久久| 欧美色图麻豆| 色偷偷福利视频| 国产一区二区三区三区在线观看| 很黄很黄激情成人| 好紧好硬好湿我太爽了| 久久夜色精品亚洲噜噜国产mv | 精品国产乱码久久久久久老虎| 成人在线电影在线观看视频| 国产精品沙发午睡系列| 精品国产乱码久久久久久牛牛| 中文字幕一区二区三区久久网站 | 亚洲视频一区二区三区| 国产真实久久| 久草在线新视觉| 久久久久久九九九| 成人免费视频视频在线观看免费| 麻豆视频在线观看免费| 亚洲影院色在线观看免费| 亚洲品质自拍视频网站| 99er精品视频| 成人黄色大片网站| 亚洲国产精品系列| 日本亚洲一区二区| 成人短视频在线| 成人av蜜桃| 午夜精品一区二区三区免费视频 | 欧美日韩18| 在线国产福利| 国产91在线视频| 亚洲人成网站精品片在线观看| 国产成人高清精品免费5388| 国产一级不卡毛片| 久久福利视频网| 91啪九色porn原创视频在线观看| 欧美日韩精品免费观看视完整| 精品一区二区三区毛片| 亚洲天堂av女优| www.99精品| 麻豆一二三区精品蜜桃| 欧美激情成人网| 国产69精品久久久| 1区2区3区精品视频| 婷婷精品在线| 黄页网址大全在线播放| 92看片淫黄大片看国产片| 日本韩国欧美一区二区三区| 亚洲精品美女91| 美女网站视频在线| 成人免费看片视频在线观看| 亚洲天堂色网站| 久久综合久久综合久久| 久久激情av| 男同在线观看| 日本一区视频在线| 在线成人一区二区| 亚洲视频在线一区观看| 亚洲一区色图| 中文字幕伦理免费在线视频| 99re8这里只有精品| 久久av中文字幕| 夜夜嗨av一区二区三区| 亚洲字幕久久| 波多一区二区| 情侣黄网站免费看| 国产精品免费看久久久香蕉| 欧美日韩一卡二卡| 国产伦精品一区二区三区免费迷| www.久久99| 在线欧美成人| 亚洲国产欧美一区二区三区不卡| 综合激情国产一区| 亚洲成人中文在线| 精品亚洲aⅴ乱码一区二区三区| a看欧美黄色女同性恋| 9191在线| 粉嫩虎白女毛片人体|