日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

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

來源: 責編: 時間:2024-03-28 17:49:57 266觀看
導讀在現代的Web應用開發中,處理請求時需要考慮到系統的性能和響應速度。特別是在處理大量請求或者需要進行耗時操作時,采用異步多線程處理是一種常見的解決方案。Spring Boot提供了@Async注解來支持異步方法調用,結合合適的

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

今日內容介紹,大約花費9分鐘kjl28資訊網——每日最新資訊28at.com

圖片圖片kjl28資訊網——每日最新資訊28at.com

1.配置線程池

@Configuration@EnableAsyncpublic 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;    }}

kjl28資訊網——每日最新資訊28at.com

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

2. @Async注解

在需要異步執行的方法上使用@Async注解。這樣的方法將會在一個單獨的線程中執行,而不會阻塞主線程。kjl28資訊網——每日最新資訊28at.com

@Slf4j@Servicepublic 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"的線程池進行執行。kjl28資訊網——每日最新資訊28at.com

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

在某些情況下,我們可能需要等待多個異步任務執行完畢后再進行下一步操作,這時可以使用CompletableFuture來實現異步多結果的聚合。kjl28資訊網——每日最新資訊28at.com

@RestController@RequestMappingpublic 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() 方法來阻塞等待異步任務完成,獲取結果。最后,將結果添加到結果列表中并返回kjl28資訊網——每日最新資訊28at.com

4. 測試

使用瀏覽器發送http://localhost:8888/open/somethings,結果如下kjl28資訊網——每日最新資訊28at.com

圖片圖片kjl28資訊網——每日最新資訊28at.com

發現使用多個線程執行方法kjl28資訊網——每日最新資訊28at.com

圖片圖片kjl28資訊網——每日最新資訊28at.com

5.注意事項

@Async注解會在以下幾個場景失效,使用了@Async注解,但就沒有走多線程:kjl28資訊網——每日最新資訊28at.com

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

異步方法使用注解@Async的返回值只能為void或者Future及其子類,當返回結果為其他類型時,方法還是會異步執行,但是返回值都是nullkjl28資訊網——每日最新資訊28at.com

本文鏈接:http://m.www897cc.com/showinfo-26-80194-0.htmlSpringBoot中的異步多線程使用及避坑指南

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: vivo 消息中間件測試環境項目多版本實踐

下一篇: AI時代的技術棧,你了解幾分?

標簽:
  • 熱門焦點
  • 8月總票房已突破10億!《封神》第一:口碑已經成了

    8月5日消息,據燈塔專業版數據,截至8月5日9時35分,8月總票房(含預售)已突破10億。其中,《封神》以大比分的優勢領先。根據官方消息,目前該片總票房已經超過14.
  • 分享六款相見恨晚的PPT模版網站, 祝你做出精美的PPT!

    1、OfficePLUSOfficePLUS網站旨在為全球Office用戶提供豐富的高品質原創PPT模板、實用文檔、數據圖表及個性化定制服務。優點:OfficePLUS是微軟官方網站,囊括PPT模板、Word模
  • Python異步IO編程的進程/線程通信實現

    這篇文章再講3種方式,同時講4中進程間通信的方式一、 Python 中線程間通信的實現方式共享變量共享變量是多個線程可以共同訪問的變量。在Python中,可以使用threading模塊中的L
  • 使用AIGC工具提升安全工作效率

    在日常工作中,安全人員可能會涉及各種各樣的安全任務,包括但不限于:開發某些安全工具的插件,滿足自己特定的安全需求;自定義github搜索工具,快速查找所需的安全資料、漏洞poc、exp
  • 慕巖炮轟抖音,百合網今何在?

    來源:價值研究所 作者:Hernanderz&ldquo;難道就因為自己的一個產品牛逼了,從客服到總裁,都不愿意正視自己產品和運營上的問題,選擇逃避了嗎?&rdquo;這一番話,出自百合網聯合創
  • 本地生活這塊肥肉,拼多多也想吃一口

    出品/壹覽商業 作者/李彥編輯/木魚拼多多也看上本地生活這塊蛋糕了。近期,拼多多在App首頁&ldquo;充值中心&rdquo;入口上線了本機生活界面。壹覽商業發現,該界面目前主要
  • 阿里瓴羊One推出背后,零售企業迎數字化新解

    作者:劉曠近年來隨著數字經濟的高速發展,各式各樣的SaaS應用服務更是層出不窮,但本質上SaaS大多局限于單一業務流層面,對用戶核心關切的增長問題等則沒有提供更好的解法。在Saa
  • 三星獲批量產iPhone 15全系屏幕:蘋果史上最驚艷直屏

    按照慣例,蘋果將繼續在今年9月舉辦一年一度的秋季新品發布會,有傳言稱發布會將于9月12日舉行,屆時全新的iPhone 15系列將正式與大家見面,不出意外的話
  • 首發天璣9200+ iQOO Neo8系列發布首銷售價2299元起

    2023年5月23日晚,iQOO Neo8系列正式發布。其中,Neo系列首款Pro之作——iQOO Neo8 Pro強悍登場,限時售價3099元起;價位段最強性能手機iQOO Neo8同期上市
Top 日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不
亚洲国产美女精品久久久久∴| 国产视频观看一区| 欧美插天视频在线播放| 136国产福利精品导航网址应用 | 久久免费午夜影院| 老司机精品视频网站| 欧美va日韩va| 欧美日韩国产美| 国产欧美一区二区三区另类精品| 国产手机视频一区二区| 亚洲福利视频专区| 一本色道久久综合狠狠躁篇的优点 | 久久久91精品国产一区二区三区| 久热成人在线视频| 欧美日韩国产一区| 国产日韩综合| 日韩视频二区| 亚洲欧美一区二区视频| 美女国内精品自产拍在线播放| 欧美日韩免费| 国内精品久久国产| 99国产精品久久久久久久| 欧美亚洲免费| 欧美激情一区二区三区在线视频观看 | 亚洲小说欧美另类社区| 欧美一区二区高清| 欧美激情亚洲| 国产一区二区丝袜高跟鞋图片| 亚洲精品乱码久久久久久| 小嫩嫩精品导航| 欧美猛交免费看| 国内不卡一区二区三区| 亚洲午夜电影网| 美女亚洲精品| 国产精品主播| 亚洲免费福利视频| 久久久美女艺术照精彩视频福利播放 | 午夜精品视频一区| 欧美大片免费观看在线观看网站推荐| 国产日本欧美视频| 欧美精品免费在线观看| 国产综合18久久久久久| 亚洲一区中文| 欧美日本在线看| 在线精品亚洲| 欧美一区二区成人6969| 欧美午夜精品理论片a级大开眼界 欧美午夜精品理论片a级按摩 | 一区二区三区精品国产| 久久久亚洲影院你懂的| 国产精品美女久久久久av超清| 亚洲区一区二| 久久―日本道色综合久久| 国产精品天天看| 一区二区高清视频| 欧美成人情趣视频| 在线观看av一区| 久久精品国产亚洲aⅴ| 国产精品蜜臀在线观看| 一区二区电影免费观看| 蘑菇福利视频一区播放| 好看的日韩视频| 欧美亚洲综合在线| 国产精品久久激情| 一区二区三区国产盗摄| 欧美日韩成人在线视频| 亚洲欧洲美洲综合色网| 久久看片网站| 国产日韩一级二级三级| 亚洲欧美999| 国产精品毛片在线看| 一区二区三区欧美成人| 欧美日韩成人综合天天影院| 亚洲日本一区二区| 嫩草国产精品入口| 在线播放一区| 久久青青草原一区二区| 狠狠综合久久| 久久久久综合一区二区三区| 韩国欧美一区| 久久久久久亚洲综合影院红桃| 国产香蕉97碰碰久久人人| 香蕉久久国产| 国产视频一区在线| 久久久久久免费| 在线免费高清一区二区三区| 老司机成人网| 最新国产成人在线观看| 欧美二区在线观看| 亚洲日本电影| 欧美日韩国产在线播放网站| 欧美日韩在线精品| 一本色道久久加勒比精品| 欧美亚州在线观看| 亚洲欧美日韩在线| 国产亚洲成年网址在线观看| 欧美在线免费观看视频| 国产真实精品久久二三区| 久久久91精品国产| 在线看视频不卡| 欧美成年人网站| 99国产精品自拍| 国产精品国产自产拍高清av| 亚洲欧美一区二区精品久久久| 国产欧美精品日韩精品| 久久精品视频网| 在线免费不卡视频| 男男成人高潮片免费网站| 亚洲精品一区中文| 欧美特黄a级高清免费大片a级| 亚洲一区网站| 国内偷自视频区视频综合| 欧美ed2k| 亚洲图片欧美一区| 国产亚洲精品久久久久动| 老鸭窝毛片一区二区三区| 亚洲精品少妇| 国产精品色婷婷| 久久久久久夜精品精品免费| 日韩视频精品| 国产伦精品一区二区三区免费 | 久久精品国产2020观看福利| 亚洲成人自拍视频| 欧美色视频日本高清在线观看| 亚洲欧美在线aaa| 伊人久久亚洲热| 欧美日韩一区在线观看视频| 性欧美在线看片a免费观看| 在线播放中文字幕一区| 欧美日韩午夜视频在线观看| 欧美在线影院在线视频| 最新日韩av| 国产毛片久久| 欧美激情一级片一区二区| 午夜精品久久久久久久99黑人| 一区精品久久| 国产精品狠色婷| 久热这里只精品99re8久| 亚洲图片欧洲图片av| 一区二区三区在线高清| 欧美视频网址| 久久夜色精品国产欧美乱极品| 宅男66日本亚洲欧美视频| 激情文学综合丁香| 国产精品v欧美精品v日韩精品| 久热爱精品视频线路一| 亚洲综合日韩| 亚洲人成在线播放| 久久国产综合精品| 亚洲精品国产系列| 国产女主播一区| 欧美精选在线| 久久理论片午夜琪琪电影网| 一本色道久久综合狠狠躁篇怎么玩 | 亚洲一区日本| 亚洲国产欧美一区二区三区同亚洲 | 欧美视频在线一区二区三区| 久久久精品tv| 亚洲一级影院| 亚洲国产午夜| 国产手机视频精品| 欧美午夜视频网站| 欧美不卡一卡二卡免费版| 欧美一区二区福利在线| 一区二区三区高清不卡| 在线观看亚洲专区| 国产欧美另类| 国产精品啊啊啊| 欧美美女bb生活片| 免费久久精品视频| 久久九九久精品国产免费直播| 亚洲香蕉成视频在线观看| 亚洲人体大胆视频| 在线观看的日韩av| 国产亚洲一区二区三区在线观看 | 毛片av中文字幕一区二区| 香蕉成人久久| 亚洲天堂黄色| 亚洲免费播放| 亚洲精品久久久蜜桃| 亚洲高清资源| 精品二区视频| 黑人巨大精品欧美黑白配亚洲| 国产精品一区二区久久久久| 欧美午夜精品一区| 欧美日本亚洲韩国国产| 欧美成人一二三| 麻豆国产精品777777在线| 久久久人成影片一区二区三区 | 在线视频精品一| 亚洲毛片在线| 亚洲欧洲精品天堂一级| 亚洲成色777777在线观看影院| 狠狠色伊人亚洲综合网站色| 国产一区 二区 三区一级| 国产女人水真多18毛片18精品视频| 国产精品第2页| 欧美午夜激情在线| 欧美视频不卡| 国产精品爱久久久久久久| 亚洲欧美日韩在线综合| 亚洲特级毛片| 亚洲一区免费看| 亚洲欧美综合| 午夜亚洲精品|