異步任務(wù)存在如下幾種順序:順序的開啟子任務(wù)(運行順序和結(jié)束順序不確定)。順序的完成(就是A先啟動,先執(zhí)行完,再執(zhí)行B任務(wù),往往A、B之間存在某種依賴關(guān)系)。還有就是優(yōu)先級的排序,就是A,B,C任務(wù)都在排隊,來了個優(yōu)先級更高的D任務(wù),那么就在存在資源的時候,優(yōu)先執(zhí)行D任務(wù)。
專業(yè)領(lǐng)域包括成都做網(wǎng)站、成都網(wǎng)站制作、商城系統(tǒng)網(wǎng)站開發(fā)、微信營銷、系統(tǒng)平臺開發(fā), 與其他網(wǎng)站設(shè)計及系統(tǒng)開發(fā)公司不同,成都創(chuàng)新互聯(lián)的整合解決方案結(jié)合了幫做網(wǎng)絡(luò)品牌建設(shè)經(jīng)驗和互聯(lián)網(wǎng)整合營銷的理念,并將策略和執(zhí)行緊密結(jié)合,為客戶提供全網(wǎng)互聯(lián)網(wǎng)整合方案。2、異步的定義筆者認為:異步最重要的就是主線程的運行進程不會因為子線程有沒有做完而阻塞。簡單的例子就是媽媽讓孩子去米,媽媽發(fā)出買米這個命令之后就應(yīng)該去做其他的了。而不應(yīng)該等米下鍋,媽媽在那里干等著。
映射到Springboot中,最主要的應(yīng)該就是接口調(diào)用之后,不管異步任務(wù)是否完成,都應(yīng)該返回結(jié)果給前端。
3、實現(xiàn)策略的嘗試 3.1、把異步作為一般方法放到同一個異步方法中針對:順序的完成(就是A先啟動,先執(zhí)行完,再執(zhí)行B任務(wù),往往A、B之間存在某種依賴關(guān)系)。
這個實現(xiàn)非常簡單,只需要調(diào)用一個異步任務(wù),其他的調(diào)用順序交給子任務(wù)就好。
例如讓孩子去買米。媽媽只需要發(fā)出這個買米的信號。至于先去超市,再買米,再把米拿回來這三個任務(wù)就交給孩子控制就好。體現(xiàn)在代碼里面就是在異步任務(wù)里面普通的方法調(diào)用。
3.2、使用線程池,定義優(yōu)先級針對:優(yōu)先級的排序,就是A,B,C任務(wù)都在排隊,來了個優(yōu)先級更高的D任務(wù),那么就在存在資源的時候,優(yōu)先執(zhí)行D任務(wù)。
這里可以才用線程池是實現(xiàn),而不是注解。可以參考下面的鏈接。為ThreadPoolTaskExecutor使用PriorityBlockingQueue
https://blog.csdn.net/qq_38397501/article/details/125280650
4、針對Future的思考實現(xiàn)鏈接請查考:https://javaforall.cn/157831.html
Future也是@Async返回值的一種,而且通過返回值我們可以判斷該任務(wù)是否已經(jīng)結(jié)束。如果我們有異步執(zhí)行的任務(wù)A,B,C,我們可以通判斷A任務(wù)是否執(zhí)行完再執(zhí)行B。這樣也完成了順序的控制。
問題是在哪里去判斷呢? 如果在主線程中去判斷,那么是不是就做成了等米下鍋的事實。就是主任務(wù)需要等待異步任務(wù)是否完成,才能決定是否進行下一步。
那么我們能不能開個異步任務(wù)來執(zhí)行這A,B,C三個任務(wù)呢,技術(shù)上是可行的。但是如果開了異步任務(wù),考慮是否需要再使用Future,保證順序,使用同步任務(wù)更好,那就作成3.1的做法。而且在異步任務(wù)里面再開線程或者異步任務(wù),本身就是非常不可取的做法。因為會導(dǎo)致線程指數(shù)級增加,一旦并發(fā)過高,性能將快速下降。
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧
本文標題:Springboot中,異步線程的執(zhí)行順序的控制-創(chuàng)新互聯(lián)
鏈接URL:http://jinyejixie.com/article48/dpseep.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供手機網(wǎng)站建設(shè)、定制開發(fā)、動態(tài)網(wǎng)站、外貿(mào)網(wǎng)站建設(shè)、企業(yè)建站、用戶體驗
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容