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

您的位置:首頁技術(shù)文章
文章詳情頁

Java實(shí)現(xiàn)限定時間CountDownLatch并行場景

瀏覽:26日期:2022-08-10 16:07:42
目錄業(yè)務(wù)場景:解決方案:總結(jié)業(yè)務(wù)場景:

一個用戶數(shù)據(jù)接口,要求在20ms內(nèi)返回?cái)?shù)據(jù),它的調(diào)用邏輯復(fù)雜,關(guān)聯(lián)接口多,需要從3個接口匯總數(shù)據(jù),這些匯總接口最小耗時也需要16ms,全部匯總接口最優(yōu)狀態(tài)耗時需要16ms*3=48ms

解決方案:

使用并行調(diào)用接口,通過多線程同時獲取結(jié)果集,最后進(jìn)行結(jié)果整合。在這種場景下,使用concurrent包的CountDownLatch完成相關(guān)操作。CountDownLatch本質(zhì)上是一個計(jì)數(shù)器,把它初始化為與執(zhí)行任務(wù)相同的數(shù)量,當(dāng)一個任務(wù)執(zhí)行完時,就將計(jì)數(shù)器的值減1,直到計(jì)算器達(dá)到0時,表示完成了所有任務(wù),在await上等待線程就繼續(xù)執(zhí)行。

為上述業(yè)務(wù)場景封裝的工具類,傳入兩個參數(shù):一個參數(shù)是計(jì)算的task數(shù)量,另外一個參數(shù)是整個大任務(wù)超時的毫秒數(shù)。

import java.util.concurrent.ArrayBlockingQueue;import java.util.concurrent.CountDownLatch;import java.util.concurrent.ThreadPoolExecutor;import java.util.concurrent.TimeUnit;public class ParallelCollector { private Long timeout; private CountDownLatch countDownLatch; ThreadPoolExecutor executor = new ThreadPoolExecutor(100, 200, 1, TimeUnit.HOURS, new ArrayBlockingQueue<>(100)); public ParallelCollector(int taskSize, Long timeOutMill) {countDownLatch = new CountDownLatch(taskSize);timeout = timeOutMill; } public void submitTask(Runnable runnable) {executor.execute(() -> { runnable.run(); countDownLatch.countDown();}); } public void await() {try { this.countDownLatch.await(timeout, TimeUnit.MILLISECONDS);} catch (InterruptedException e) { e.printStackTrace();} } public void destroy() {this.executor.shutdown(); }}

當(dāng)任務(wù)運(yùn)行時間超過了任務(wù)的時間上限,就被直接停止,這就是await()的功能。

interface是一個模擬遠(yuǎn)程服務(wù)的超時的測試類,程序運(yùn)行后,會輸出執(zhí)行結(jié)果到map集合。

public class InterfaceMock { private volatile int num=1; public String slowMethod1() {try { Thread.sleep(2000);} catch (InterruptedException e) { e.printStackTrace();}return String.valueOf(num+1); }; public String slowMethod2() {return String.valueOf(num+1); }; public String slowMethod3() {return String.valueOf(num+1); };}

并行執(zhí)行獲取結(jié)果測試類

@SpringBootTestclass ThreadPoolApplicationTests { @Test void testTask() {InterfaceMock interfaceMock = new InterfaceMock();ParallelCollector collector = new ParallelCollector(3, 20L);ConcurrentHashMap<String, String> map = new ConcurrentHashMap<>();collector.submitTask(()->map.put('method1',interfaceMock.slowMethod1()));collector.submitTask(()->map.put('method2',interfaceMock.slowMethod2()));collector.submitTask(()->map.put('method3',interfaceMock.slowMethod3()));collector.await();System.out.println(map.toString());collector.destroy(); }}

當(dāng)method1()執(zhí)行時間大于20ms,則該方法直接被終止,結(jié)果map集沒有method1()的結(jié)果,結(jié)果如下:

總結(jié)

使用這種方式,接口能在固定時間內(nèi)返回,注意CountDownLatch定義數(shù)量是任務(wù)個數(shù),使用concurrentHashMap避免了并行執(zhí)行時發(fā)生錯亂,造成錯誤的結(jié)果的問題。

到此這篇關(guān)于Java實(shí)現(xiàn)限定時間CountDownLatch并行場景的文章就介紹到這了,更多相關(guān)Java CountDownLatch并行場景內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Java
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
91精品国产经典在线观看 | 美女性感视频久久| 免费一级欧美片在线观看网站| 日韩成人精品一区二区| 一区二区三区视频免费观看| 亚洲精品乱码| 精品72久久久久中文字幕| 欧美福利专区| 日韩不卡一区二区三区| 91亚洲成人| 国产一区日韩欧美| 日韩精品a在线观看91| 国产999精品在线观看| 亚洲黄页一区| 国产精品欧美在线观看| 欧美va天堂在线| 国产伦理一区| 美女网站一区| 日韩国产精品久久久| 三级小说欧洲区亚洲区| 91p九色成人| 国产真实久久| 国产精品香蕉| 另类国产ts人妖高潮视频| 久久精品资源| 欧美1区2区3区| 久久国产欧美日韩精品| 亚洲午夜在线| 麻豆国产精品| 欧美专区在线| 日本在线啊啊| 国产探花在线精品一区二区| 精品一区免费| 久久精品国产免费| 丝袜a∨在线一区二区三区不卡| 免费日韩成人| 亚洲精品成a人ⅴ香蕉片| 久久激情中文| 国产精品sm| 免费不卡在线观看| 在线精品亚洲欧美日韩国产| 中文字幕一区二区三区四区久久| 国产一区调教| 97久久亚洲| 中文亚洲免费| 精精国产xxxx视频在线野外| 国产精品国产三级在线观看| 乱人伦精品视频在线观看| 成人啊v在线| 欧美黄色一区二区| 蜜桃久久久久久| 91精品一区二区三区综合| 欧美aⅴ一区二区三区视频| 美国三级日本三级久久99 | 黑人精品一区| 国产剧情在线观看一区| 一区二区三区午夜视频| 2023国产精品久久久精品双| 国产专区精品| 久久gogo国模啪啪裸体| 日本不卡高清| 视频一区欧美精品| 在线精品视频在线观看高清| 国产精品久久久久蜜臀| 美腿丝袜亚洲三区| 国产亚洲一卡2卡3卡4卡新区| 丝瓜av网站精品一区二区| 亚洲特级毛片| 丝袜美腿一区| zzzwww在线看片免费| 国产精品115| 国产亚洲精aa在线看| 四虎精品永久免费| 天堂成人国产精品一区| 狠狠干综合网| 黄色亚洲免费| 亚洲少妇自拍| 日韩视频一区二区三区在线播放免费观看 | 麻豆网站免费在线观看| 久久亚洲道色| 欧美激情视频一区二区三区在线播放| 亚洲精品一级| 免费观看日韩电影| 免费一级片91| 亚洲一区二区三区高清| 亚洲男女自偷自拍| 蜜臀精品久久久久久蜜臀| 亚洲综合国产| 免费成人av在线播放| 蜜臀国产一区二区三区在线播放| 一区免费在线| 国产精品普通话对白| 婷婷综合在线| 亚洲色诱最新| 免费不卡在线观看| 日本在线不卡视频| 国产亚洲字幕| 国产激情久久| 国产一区二区三区四区五区| 成人污污视频| 久久久久99| 黄色免费成人| 蜜臀精品一区二区三区在线观看 | 中文在线а√天堂| 中文在线а√在线8| 丝袜美腿一区| 欧美日韩国产高清电影| 夜夜嗨av一区二区三区网站四季av| 欧美午夜不卡| 视频一区视频二区在线观看| 日韩国产在线观看一区| 日韩成人午夜精品| 国产精品超碰| 在线一区av| 欧美日韩精品免费观看视频完整| 中文在线不卡| 日本一区中文字幕| 麻豆久久一区| 日本а中文在线天堂| 欧美日韩国产高清| 中文字幕亚洲在线观看| 日韩精品导航| 黄色精品视频| 美女亚洲一区| 亚洲精品动态| 国产福利资源一区| 日韩欧美精品一区| 亚洲激情精品| 91p九色成人| 国产中文在线播放| 在线亚洲国产精品网站| 欧美日韩一区二区国产| 久久男人天堂| 美女久久一区| 欧美经典一区| 欧美午夜不卡| 国产精品一区高清| 久久五月天小说| 日韩三级精品| 亚洲黄色免费看| 久久高清一区| 国产精品高清一区二区| 日韩精品看片| 日韩欧美激情电影| 欧美日韩视频网站| 色狠狠一区二区三区| 成人亚洲一区二区| 中文字幕日韩亚洲| 国产成人精品三级高清久久91 | 国产精品资源| 久久九九电影| 国产一卡不卡| 久久高清精品| 久久国产麻豆精品| bbw在线视频| 久久先锋影音| 国产成人精品999在线观看| 亚洲欧美日韩视频二区| 鲁大师精品99久久久| 亚洲自拍另类| 成人一区不卡| 日本成人在线视频网站| 久久精品官网| 国产高清视频一区二区| 国产毛片久久| 国产欧美一区二区三区精品酒店| 最新国产精品| 99久久久国产精品美女| 国产精品毛片aⅴ一区二区三区| 久久国产精品成人免费观看的软件| 日本成人在线不卡视频| 99久久精品费精品国产| 免费一区二区三区在线视频| 免费在线看一区| 久久久精品网| 免费亚洲婷婷| 无码日韩精品一区二区免费| 久久精品高清| 久久97久久97精品免视看秋霞| 亚洲精品在线二区| 婷婷综合亚洲| 亚洲最新无码中文字幕久久 | 只有精品亚洲| 久久人人精品| 精品中国亚洲| 欧美日韩一区二区三区四区在线观看| 亚洲成人一区| 黑森林国产精品av| 国产精品主播在线观看| 喷白浆一区二区| 免费精品国产| 日产精品一区二区| 国产精品二区影院| 亚洲三级观看| 悠悠资源网久久精品| 日韩成人亚洲| 国产成人精品一区二区三区视频| 日本三级亚洲精品| 免费成人在线影院| 在线 亚洲欧美在线综合一区|