Springboot任務(wù)之異步任務(wù)的使用詳解
一、SpringBoot--異步任務(wù)
1.1 什么是同步和異步
- 同步是阻塞模式,異步是非阻塞模式。
- 同步就是指一個(gè)進(jìn)程在執(zhí)行某個(gè)請(qǐng)求的時(shí)候,若該請(qǐng)求需要一段時(shí)間才能返回信息,那么這個(gè)進(jìn)程將會(huì)—直等待下去,知道收到返回信息才繼續(xù)執(zhí)行下去
- 異步是指進(jìn)程不需要一直等下去,而是繼續(xù)執(zhí)行下面的操作,不管其他進(jìn)程的狀態(tài)。當(dāng)有消息返回式系統(tǒng)會(huì)通知進(jìn)程進(jìn)行處理,這樣可以提高執(zhí)行的效率。
1.2 Java模擬一個(gè)異步請(qǐng)求(線程休眠)
AsyncService.java
package com.tian.asyncdemo.service; import org.springframework.stereotype.Service; @Service public class AsyncService { public void hello() { try { System.out.println("數(shù)據(jù)正在處理"); Thread.sleep(3000); System.out.println("數(shù)據(jù)處理完成"); } catch (InterruptedException e) { e.printStackTrace(); } } }
AsyncController.java
package com.tian.asyncdemo.controller; import com.tian.asyncdemo.service.AsyncService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; /** * ClassName: AsyncController * Description: * * @author Administrator * @date 2021/6/6 19:48 */ @RestController public class AsyncController { @Autowired AsyncService asyncService; @RequestMapping("/hello") public String hello() { asyncService.hello(); return "OK"; } }
運(yùn)行結(jié)果:
1.3 使用異步
在Service的方法中使用@Async說這是一個(gè)異步方法,并在主入口上使用@EnableAsync開啟異步支持
AsyncService.java
@Service public class AsyncService { @Async public void hello() { try { System.out.println("數(shù)據(jù)正在處理"); Thread.sleep(3000); System.out.println("數(shù)據(jù)處理完成"); } catch (InterruptedException e) { e.printStackTrace(); } } }
主入口上使用@EnableAsync開啟異步支持
再次測(cè)試:
到此這篇關(guān)于Springboot任務(wù)之異步任務(wù)的使用詳解的文章就介紹到這了,更多相關(guān)SpringBoot異步任務(wù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Springboot配置security basic path無(wú)效解決方案
這篇文章主要介紹了Springboot配置security basic path無(wú)效解決方案,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-09-09ArrayList和JSONArray邊遍歷邊刪除到底該如何做
這篇文章主要介紹了ArrayList和JSONArray邊遍歷邊刪除到底該如何做,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-12-12java實(shí)用驗(yàn)證碼的實(shí)現(xiàn)代碼
這篇文章主要為大家介紹了java實(shí)用驗(yàn)證碼的實(shí)現(xiàn)代碼,驗(yàn)證碼實(shí)際上就是隨機(jī)選擇一些字符以圖片的形式展現(xiàn)在頁(yè)面上,感興趣的小伙伴們可以參考一下2016-03-03金三銀四復(fù)工高頻面試題java算法LeetCode396旋轉(zhuǎn)函數(shù)
這篇文章主要為大家介紹了金三銀四復(fù)工高頻面試題之java算法題解LeetCode396旋轉(zhuǎn)函數(shù),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-02-02淺談Java讀寫注冊(cè)表的方式Preferences與jRegistry
這篇文章主要介紹了淺談Java讀寫注冊(cè)表的方式Preferences與jRegistry,分享了相關(guān)代碼示例,小編覺得還是挺不錯(cuò)的,具有一定借鑒價(jià)值,需要的朋友可以參考下2018-02-02關(guān)于JFormDesigner的安裝及破姐超詳細(xì)教程
JFormDesigner是一種先進(jìn)的圖形用戶界面Swing?的設(shè)計(jì)工具(非開源),具有一個(gè)獨(dú)立的開發(fā)工具產(chǎn)品和基于不同開發(fā)工具如Eclipse、NetBeans等的開發(fā)插件,本文給大家介紹JFormDesigner安裝破解教程,感興趣的朋友一起看看吧2023-12-12