CountDownLatch模擬并發(fā)請(qǐng)求

一、CountDownLatch介紹

? ??????CountDownLatch是一個(gè)并發(fā)工具類,?作用是允許一個(gè)或多個(gè)線程等待其他線程完成操作。我們有時(shí)會(huì)稱之為發(fā)令槍。有一個(gè)個(gè)形象的例子能說明其功能:公司召開一個(gè)全體股東會(huì),需要所有股東到場(chǎng)了才能正式開始。會(huì)議室準(zhǔn)備了一個(gè)花名冊(cè),記錄了需要到會(huì)的總?cè)藬?shù),每一個(gè)股東來到會(huì)議室就要簽名確認(rèn),同時(shí)總?cè)藬?shù)減一,當(dāng)需要到會(huì)的總?cè)藬?shù)為0時(shí),會(huì)議就正式開始。所以,CountDownLatch就有充當(dāng)計(jì)數(shù)器和發(fā)令槍的功能。

二、模擬并發(fā)請(qǐng)求

? ? ? ? 通過CountDownLatch的計(jì)數(shù)和發(fā)令功能,我們可以通過它模擬并發(fā)請(qǐng)求的功能,常常能用于測(cè)試。下面的代碼時(shí)一個(gè)模擬并發(fā)請(qǐng)求的示例:

? ? 1、concurrentCount定義并發(fā)請(qǐng)求數(shù)量;

????2、countDownLatch.await()處會(huì)一直阻塞當(dāng)前進(jìn)程,計(jì)數(shù)器的值為0;

? ? 3、countDownLatch.countDown()每執(zhí)行一次,計(jì)數(shù)器數(shù)值減一,當(dāng)值為0時(shí),阻塞的線程會(huì)一起執(zhí)行。

? ? 上述例子希望能給大家?guī)硇⌒〉膯l(fā)。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容