最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

@Async的用法和示例

2022-03-08 19:58 作者:雄獅虎豹  | 我要投稿

@Async 注解的用法和示例

@Async 注解的用法和示例背景異步調(diào)用@Async介紹在Spring中啟用@Async示例一:基本使用方式示例二:在同一個(gè)類中調(diào)用異步方法示例三:異步方法是static方法示例四:在方法級(jí)別上修改默認(rèn)的執(zhí)行器


背景

通常,在Java中的方法調(diào)用都是同步調(diào)用,比如在A方法中調(diào)用了B方法,則在A調(diào)用B方法之后,必須等待B方法執(zhí)行并返回后,A方法才可以繼續(xù)往下執(zhí)行。這樣容易出現(xiàn)的一個(gè)問(wèn)題就是如果B方法執(zhí)行時(shí)間較長(zhǎng),則可能會(huì)導(dǎo)致調(diào)用A的請(qǐng)求響應(yīng)遲緩,為了解決這種問(wèn)題,可以使用Spirng的注解@Async來(lái)用異步調(diào)用的方式處理,當(dāng)然也會(huì)有別的多線程方式解決此類問(wèn)題,本文主要分析@Async在解決此類問(wèn)題時(shí)的用法以及具體的示例。

異步調(diào)用

比如方法A調(diào)用方法B,如果B是一個(gè)異步方法,則A方法在調(diào)用B方法之后,不用等待B方法執(zhí)行完成,而是直接往下繼續(xù)執(zhí)行別的代碼。

@Async介紹

在Spring中,使用@Async標(biāo)注某方法,可以使該方法變成異步方法,這些方法在被調(diào)用的時(shí)候,將會(huì)在獨(dú)立的線程中進(jìn)行執(zhí)行,調(diào)用者不需等待該方法執(zhí)行完成。

在Spring中啟用@Async

使用@EnableAsync

示例一:基本使用方式

在方法上添加@Async注解

調(diào)用異步方法

執(zhí)行結(jié)果


從執(zhí)行結(jié)果可以看出,main線程中的func1方法在調(diào)用異步方法test2后,沒(méi)有等待test2方法執(zhí)行完成,直接執(zhí)行后面的代碼。

示例二:在同一個(gè)類中調(diào)用異步方法

方法func2和上面的異步方法test2方法在同一個(gè)類中


從執(zhí)行結(jié)果可知,main線程中的func2方法在調(diào)用異步方法test2方法后,等待test2方法執(zhí)行完后,才繼續(xù)往后執(zhí)行。

示例三:異步方法是static方法

異步方法test3是一個(gè)static方法

調(diào)用test3的方法

執(zhí)行結(jié)果。可以看出在static方法上添加@Async注解,當(dāng)調(diào)用該方法時(shí)并沒(méi)有新啟用一個(gè)線程單獨(dú)執(zhí)行,而是按順序執(zhí)行代碼,說(shuō)明異步無(wú)效。


示例四:在方法級(jí)別上修改默認(rèn)的執(zhí)行器

自定義一個(gè)線程池執(zhí)行器代替默認(rèn)的執(zhí)行器

自定義的線程池執(zhí)行器

異步方法上使用自定義的執(zhí)行器

調(diào)用test4異步方法

從執(zhí)行結(jié)果可以看出,@Async注解聲明使用指定的自定義的異步執(zhí)行器,已經(jīng)替換了默認(rèn)的執(zhí)行器。而且調(diào)用異步方法的main線程沒(méi)有等待異步方法的執(zhí)行。

說(shuō)明:新建自定義的執(zhí)行器后,注解@Async默認(rèn)就會(huì)替換成自定義的執(zhí)行器,所以在@Async注解上可以不用指定。



1.01^{365} ≈ 37.7834343329 ? 0.99^{365} ≈ 0.02551796445 ? 相信堅(jiān)持的力量!


@Async的用法和示例的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
嘉义县| 临桂县| 金寨县| 美姑县| 宜兴市| 江达县| 滨州市| 余江县| 淅川县| 奈曼旗| 乃东县| 桑植县| 肃宁县| 东乌珠穆沁旗| 临西县| 鄂尔多斯市| 乳源| 邓州市| 海盐县| 紫云| 家居| 左贡县| 临泽县| 登封市| 辽源市| 苍梧县| 屏东市| 海城市| 仪征市| 长乐市| 清新县| 龙胜| 上林县| 海门市| 安阳县| 阳山县| 宁海县| 朔州市| 迁安市| 霸州市| 临桂县|