亚洲精品中文免费|亚洲日韩中文字幕制服|久久精品亚洲免费|一本之道久久免费

      
      

            <dl id="hur0q"><div id="hur0q"></div></dl>

                正確使用@Async,避免踩坑

                用法和介紹

                功能描述

                @Async是Spring提供的使方法異步的注解

                使用方法

              1. SpringBoot項(xiàng)目啟動(dòng)類增加@EnableAsync注解,開(kāi)啟異步功能
              2. 給需要異步的方法增加@Async(“”)注解,一定要指定線程名稱
              3. 代碼示例

                @EnableAsync@SpringBootApplicationpublic class StartApplication { public static void main(String[] args) { SpringApplication.run(StartApplication.class, args); }}@Servicepublic class AsyncService { /** * 使用默認(rèn)線程池 */ @Async public void say(){ } /** * 指定線程池名稱 */ @Async(“getAsyncExecutor”) public void eat(){ }}@Configurationpublic class MyAsyncConfiguration { //核心線程數(shù) private static final int CORE_POOL_SIZE = 5; //最大線程數(shù) private static final int MAX_POOL_SIZE = 15; //隊(duì)列大小 private static final int QUEUE_CAPACITY = 100; //線程池中的線程的名稱前綴 private static final String THREAD_NAME = “MyThread-“; @Bean public Executor getAsyncExecutor() { ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor(); //配置核心線程數(shù) executor.setCorePoolSize(CORE_POOL_SIZE); //配置最大線程數(shù) executor.setMaxPoolSize(MAX_POOL_SIZE); //配置隊(duì)列大小 executor.setQueueCapacity(QUEUE_CAPACITY); //配置線程池中的線程的名稱前綴 executor.setThreadNamePrefix(THREAD_NAME); //配置線程池拒絕策略,設(shè)置為CallerRunsPolicy,當(dāng)線程和隊(duì)列都滿了,由發(fā)起線程的主線程自己執(zhí)行 executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy()); executor.initialize(); return executor; }}

                已實(shí)現(xiàn)的TaskExecutor線程池

                • SimpleAsyncTaskExecutor:不是真的線程池,這個(gè)類不重用線程,每次調(diào)用都會(huì)創(chuàng)建一個(gè)新的線程。
                • SyncTaskExecutor:這個(gè)類沒(méi)有實(shí)現(xiàn)異步調(diào)用,只是一個(gè)同步操作,只適用于不需要多線程的地方。
                • ConcurrentTaskExecutor:Executor的適配類,不推薦使用。如果ThreadPoolTaskExecutor不滿足要求時(shí),才用考慮使用這個(gè)類 。
                • SimpleThreadPoolTaskExecutor:是Quartz的SimpleThreadPool的類。線程池同時(shí)被quartz和非quartz使用,才需要使用此類。
                • ThreadPoolTaskExecutor :最常使用,推薦。 其實(shí)質(zhì)是對(duì)java.util.concurrent.ThreadPoolExecutor的包裝。

                為什么說(shuō)一定要指定線程池名稱

                @Async依賴線程池,當(dāng)我們未指定線程池@Async會(huì)如何選擇呢?

                1. 當(dāng)系統(tǒng)未配置任何線程池時(shí)

                SpringBoot會(huì)默認(rèn)添加一個(gè)coreSize=8的 ThreadPoolTaskExecutor 無(wú)界線程池,名稱applicationTaskExecutor。

                2. 當(dāng)只配置了一個(gè)TaskExecutor線程池時(shí)

                使用此線程池

                3. 當(dāng)只配置了一個(gè)線程池,但不是TaskExecutor線程池時(shí)

                使用 SimpleAsyncTaskExecutor 線和池

                4. 當(dāng)有多個(gè)TaskExecutor線程池時(shí)

                默認(rèn)使用 SimpleAsyncTaskExecutor 線程池,如果指定就使用指定的線程池(即使不是TaskExecutor類型的線程池也可以)

                注意:SimpleAsyncTaskExecutor 不是真的線程池,這個(gè)類不重用線程,每次調(diào)用都會(huì)創(chuàng)建一個(gè)新的線程。強(qiáng)烈建議開(kāi)發(fā)時(shí)指定線程池的名稱,避免創(chuàng)建多個(gè)TaskExecutor實(shí)例后,使用 SimpleAsyncTaskExecutor 線和池的情況發(fā)生

                鄭重聲明:本文內(nèi)容及圖片均整理自互聯(lián)網(wǎng),不代表本站立場(chǎng),版權(quán)歸原作者所有,如有侵權(quán)請(qǐng)聯(lián)系管理員(admin#wlmqw.com)刪除。
                用戶投稿
                上一篇 2022年6月14日 12:29
                迄今最大樣本的感染研究顯示,奧密克戎感染者在住院率、死亡率上均顯著弱于德?tīng)査?/span>
                下一篇 2022年6月14日 12:29

                相關(guān)推薦

                • 分享4條發(fā)微商朋友圈的方法(微商朋友圈應(yīng)該怎么發(fā))

                  對(duì)于微商朋友來(lái)說(shuō),朋友圈的重要性不言而喻了。 那么微商的朋友圈到底該怎么發(fā)呢? 為什么同樣是經(jīng)營(yíng)一個(gè)朋友圈,有的微商看起來(lái)逼格滿滿,實(shí)際效果也不錯(cuò);而有的卻動(dòng)都不動(dòng)就被屏蔽甚至拉黑…

                  2022年11月27日
                • 全民K歌升級(jí)新版本7.0之后,有哪些隱藏功能?

                  作者:高百烈來(lái)源:知乎 這個(gè)功能,舊版并沒(méi)有,要升級(jí)到全新的全民K歌7.0版本才能發(fā)現(xiàn)。 作為朋友圈當(dāng)代K歌之王,我費(fèi)了不少功夫才搶到內(nèi)測(cè)版本。有一說(shuō)一,全民K歌的路子真的很野,新…

                  2022年11月25日
                • 《寶可夢(mèng)朱紫》夢(mèng)特性怎么獲得?隱藏特性獲取方法推薦

                  寶可夢(mèng)朱紫里有很多寶可夢(mèng)都是擁有夢(mèng)特性會(huì)變強(qiáng)的寶可夢(mèng),很多玩家不知道夢(mèng)特性怎么獲得,下面就給大家?guī)?lái)寶可夢(mèng)朱紫隱藏特性獲取方法推薦,感興趣的小伙伴一起來(lái)看看吧,希望能幫助到大家。 …

                  2022年11月25日
                • 《寶可夢(mèng)朱紫》奇魯莉安怎么進(jìn)化?奇魯莉安進(jìn)化方法分享

                  寶可夢(mèng)朱紫中的奇魯莉安要怎么進(jìn)化呢?很多玩家都不知道,下面就給大家?guī)?lái)寶可夢(mèng)朱紫奇魯莉安進(jìn)化方法分享,感興趣的小伙伴一起來(lái)看看吧,希望能幫助到大家。 奇魯莉安進(jìn)化方法分享 奇魯莉安…

                  2022年11月25日
                • 2023年擺地?cái)傎u什么最賺錢而且很受歡迎(2022年擺地?cái)偤戏▎?

                  關(guān)于擺地?cái)傎嶅X每年的熱度也是非常高的,很多想要做點(diǎn)小本生意的商家也都會(huì)選擇擺地?cái)傔@個(gè)項(xiàng)目,所需要的成本也是非常低的。那么,2023年擺地?cái)傎u什么最賺錢而且很受歡迎?今天極客號(hào)小編整…

                  2022年11月25日
                • 密接5+3是什么意思(密接人員是什么意思)

                  如今新冠病例的傳播速度是越來(lái)越快了,對(duì)于感染了新冠病毒的人員來(lái)說(shuō)都會(huì)采取隔離觀看措施。而據(jù)了解,當(dāng)前國(guó)內(nèi)又對(duì)新冠疫情防控政策做了新的調(diào)整優(yōu)化,其中密接管理調(diào)整為“5+3”。很多人對(duì)…

                  2022年11月25日
                • 上手Reno8 Pro體驗(yàn)跨屏互聯(lián) 實(shí)在太方便!

                  11月已經(jīng)來(lái)到了月底,在手機(jī)品牌又要推出新一年度的新品手機(jī)之前,我們來(lái)點(diǎn)評(píng)一下今年令人驚喜的產(chǎn)品。如OPPO的Reno8 Pro系列,該系列搭載雙芯影像配置獲得了很多消費(fèi)者的認(rèn)可。…

                  2022年11月25日
                • 不知道考研真題哪里找?看這里!

                  考研備考沖刺階段,知道大家都很疲憊,但是,別讓自己之前的努力白費(fèi),再堅(jiān)持堅(jiān)持,會(huì)看到你想要的結(jié)果的。 要是你想考研成功,有一個(gè)資料就必須要有。它就是:歷年考研真題。 考研真題的重要…

                  2022年11月25日
                • 《原神》3.2無(wú)相交響詩(shī)第一天無(wú)相之冰怎么打?無(wú)相交響詩(shī)攻略

                  原神3.2無(wú)相交響詩(shī)第一天無(wú)相之冰怎么打?最近新版本3.2版本的無(wú)相交響詩(shī)活動(dòng)又開(kāi)啟了,不少玩家還不清楚具體的玩法,下面一起來(lái)看一下原神被隱去的原神3.2無(wú)相交響詩(shī)第一天無(wú)相之冰打…

                  2022年11月24日
                • cpu性能天梯圖2022 AMD CPU天梯圖最新排行榜出爐

                  用戶在DIY自己的主機(jī)時(shí)選擇CPU是非常關(guān)鍵的,CPU可以說(shuō)是電腦的大腦,大家也都想追求好一點(diǎn)的CPU來(lái)使用,但型號(hào)太多了,大部分的用戶都不知道目前哪一款CPU比較好用,快來(lái)看看詳…

                  2022年11月24日

                聯(lián)系我們

                聯(lián)系郵箱:admin#wlmqw.com
                工作時(shí)間:周一至周五,10:30-18:30,節(jié)假日休息