日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

Spring boot使用多線程過程步驟解析

瀏覽:28日期:2023-08-24 08:32:21

Spring中實現多線程,其實非常簡單,只需要在配置類中添加@EnableAsync就可以使用多線程。在希望執行的并發方法中使用@Async就可以定義一個線程任務。通過spring給我們提供的ThreadPoolTaskExecutor就可以使用線程池。

第一步,先在Spring Boot主類中定義一個線程池,比如:

package com.jmxf.core.config;import java.util.concurrent.Executor;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.scheduling.annotation.EnableAsync;import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;@Configuration@EnableAsync // 啟用異步任務public class AsyncConfiguration { // 組件計算 @Bean('zjExecutor') public Executor asyncExecutor() { ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor(); //核心線程數5:線程池創建時候初始化的線程數 executor.setCorePoolSize(5); //最大線程數5:線程池最大的線程數,只有在緩沖隊列滿了之后才會申請超過核心線程數的線程 executor.setMaxPoolSize(10); //緩沖隊列500:用來緩沖執行任務的隊列 executor.setQueueCapacity(500); //允許線程的空閑時間60秒:當超過了核心線程出之外的線程在空閑時間到達之后會被銷毀 executor.setKeepAliveSeconds(60); //線程池名的前綴:設置好了之后可以方便我們定位處理任務所在的線程池 executor.setThreadNamePrefix('DailyAsync-'); executor.initialize(); return executor; }}

有很多你可以配置的東西。默認情況下,使用SimpleAsyncTaskExecutor。

第二步,使用線程池

在定義了線程池之后,我們如何讓異步調用的執行任務使用這個線程池中的資源來運行呢?方法非常簡單,我們只需要在@Async注解中指定線程池名即可,比如:

package com.jmxf.service.fkqManage.zj;import org.springframework.scheduling.annotation.Async;@Servicepublic class CentreZj { /** * 多線程執行 zj計算推數 * @param fkqZj * @throws Exception */ @Async('zjExecutor') public CompletableFuture<String> executeZj (FkqZj fkqZj) { if(fkqZj == null) return; String zjid = fkqZj.getZjid(); FkqHdzjdm zjdm = getZjdm(zjid); String zjlj = zjdm.getZjlj(); if(StringUtils.isBlank(zjlj)) return; Object bean = ApplicationContextProvider.getBean(zjlj); Method method; try { method = bean.getClass().getMethod('refresh',String.class); method.invoke(bean,zjid); } catch (Exception e) { e.printStackTrace(); } } return CompletableFuture.completedFuture(zjid);}

executeZj方法被標記為Spring的 @Async 注解,表示它將在一個單獨的線程上運行。該方法的返回類型是 CompleetableFuture 而不是 String,這是任何異步服務的要求。

第三步,調用測試

List<CompletableFuture<String>> executeZjs = new ArrayList<>(); for (FkqZj fkqZj : zjs) { CompletableFuture<String> executeZj = centreZj.executeZj(fkqZj); executeZjs.add(executeZj); } //等待所以子線程結束后 返回結果 for (CompletableFuture<String> completableFuture : executeZjs) { CompletableFuture.allOf(completableFuture).join(); }

注意事項

異步方法和調用方法一定要寫在不同的類中 ,如果寫在一個類中,是沒有效果的!

原因:

spring對@Transactional注解時也有類似問題,spring掃描時具有@Transactional注解方法的類時,是生成一個代理類,由代理類去開啟關閉事務,而在同一個類中,方法調用是在類體內執行的,spring無法截獲這個方法調用。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Spring
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
日本aⅴ亚洲精品中文乱码| 国产日韩欧美中文在线| 欧美国产极品| 久久狠狠久久| 久久av影视| 日韩高清不卡一区二区| 欧美一级一区| 欧美国产中文高清| 国精品产品一区| 亚洲a一区二区三区| 91久久亚洲| 亚洲18在线| 国产精品密蕾丝视频下载| 麻豆一区二区在线| av资源亚洲| 国产高清一区二区| 亚洲人成亚洲精品| 国产精品调教视频| 国产白浆在线免费观看| 日韩精品欧美激情一区二区| 欧美91精品| 亚洲欧美日韩专区| 97成人超碰| 日产精品一区二区| 午夜电影亚洲| 欧美亚洲tv| 日韩影院二区| 免费在线成人网| 国产精品高清一区二区| 欧美成人基地| 亚洲精品系列| 久久亚洲精精品中文字幕| 精品国产一区二| 日韩欧美一区二区三区免费看| 黄色不卡一区| 日韩精品免费一区二区夜夜嗨| 久久久久观看| 欧美日韩尤物久久| 蜜桃av一区二区在线观看| 热久久久久久| 日韩成人亚洲| 中文字幕亚洲影视| 精品伊人久久| 国产日韩综合| 久久久久观看| 免费日韩一区二区| 国产精品久久久久久久久免费高清 | 国产在线不卡一区二区三区 | 欧美亚洲日本精品| 日韩精品一级中文字幕精品视频免费观看| 久久国产精品免费一区二区三区| 久久精品电影| 日本欧美久久久久免费播放网| 亚洲欧洲美洲av| 蜜臀久久99精品久久久画质超高清 | 国产亚洲高清一区| 麻豆国产在线| 日韩一区中文| 精品视频一二| 国产精品日韩久久久| 久久精品伊人| 日韩精品一级中文字幕精品视频免费观看 | 久久免费黄色| 日韩精品一区二区三区中文在线| 91亚洲国产| 蜜臀久久99精品久久久画质超高清| 精品亚洲自拍| 免费日韩av片| 成年男女免费视频网站不卡| 日本一区福利在线| 在线视频观看日韩| 久久在线91| 日韩1区2区3区| 国产国产精品| 国产在线观看www| 国产欧美日韩| 在线精品一区二区| 久久视频精品| 红杏一区二区三区| 欧美日韩一区二区三区不卡视频| 亚洲电影在线| caoporn视频在线| 久久99影视| 亚洲综合丁香| 亚洲人成在线网站| 国产精品久久亚洲不卡| 喷白浆一区二区| 亚洲午夜久久久久久尤物| 丁香婷婷久久| 国产精品地址| 日本免费新一区视频| 免费日韩av| 香蕉精品视频在线观看| 人在线成免费视频| 久久久久黄色| 97成人在线| 亚洲精品成a人ⅴ香蕉片| av成人国产| 国产一区日韩一区| 另类中文字幕国产精品| 精品亚洲免a| 国产精品v一区二区三区| 欧美精品影院| 日本午夜精品久久久久| 免费视频一区二区| 中文在线不卡| 欧美日韩国产综合网| 欧美aa国产视频| 亚洲福利专区| 国产精品婷婷| 男人的天堂久久精品| 日韩在线网址| 麻豆精品视频在线观看视频| 精品国产91| 99精品视频精品精品视频| 一区福利视频| 天堂久久av| 老司机免费视频一区二区| 国产成人精品福利| 中文字幕系列一区| 亚洲欧洲一区| 日本aⅴ亚洲精品中文乱码| 你懂的国产精品| 久久99久久人婷婷精品综合| 国产欧美日韩精品高清二区综合区| 日本99精品| 国产亚洲精aa在线看| 欧美韩日一区| 久久精品免费一区二区三区| 欧美成人综合| 中日韩男男gay无套| 日韩专区在线视频| 日韩有码av| 国产伦理一区| 成人日韩av| 秋霞国产精品| 悠悠资源网久久精品| 亚洲我射av| 久久精品超碰| 国产精品伦一区二区| 精品理论电影在线| 国产精品二区不卡| 91精品国产调教在线观看| 欧美日韩高清| 视频一区二区中文字幕| 无码日韩精品一区二区免费| 国产欧美日韩在线观看视频| 久久爱www成人| 伊人久久av| 欧美一级专区| 国产午夜一区| 不卡一二三区| 国产亚洲毛片| 欧美偷窥清纯综合图区| 精品成人18| 91精品一区二区三区综合在线爱| 黄色亚洲在线| 欧美日韩一区二区三区不卡视频 | 日韩精品一二区| 欧美日韩尤物久久| 在线亚洲自拍| 欧美日韩亚洲一区三区| 国产a亚洲精品| 一区二区视频欧美| 免费一级欧美在线观看视频 | 国产一区二区三区成人欧美日韩在线观看| 欧美日韩国产综合网| 欧美91在线| 免费观看日韩电影| 日韩免费久久| 日韩福利视频网| 米奇777超碰欧美日韩亚洲| 国产精品观看| 男女激情视频一区| 精品日韩视频| 免费在线观看一区| 在线免费观看亚洲| 国产一区二区三区精品在线观看| 亚洲深深色噜噜狠狠爱网站 | 综合色一区二区| 日韩在线观看| 国产精品2023| 蜜桃视频免费观看一区| 99热精品久久| 精品九九在线| 日韩欧美美女在线观看| av高清一区| 精品视频在线一区二区在线| 日韩一区精品| 不卡在线一区| sm捆绑调教国产免费网站在线观看 | 久久精品国产成人一区二区三区| 图片区亚洲欧美小说区| 国产精品白丝一区二区三区| 香蕉国产精品| 亚洲永久av| 国产精品自拍区| 日韩欧美在线精品| 久久av一区二区三区| 欧美日韩一二三四|