溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

倒計時器CountDownLatch舉例分析

發(fā)布時間:2021-12-14 15:13:52 來源:億速云 閱讀:114 作者:iii 欄目:大數(shù)據(jù)

這篇文章主要講解了“倒計時器CountDownLatch舉例分析”,文中的講解內(nèi)容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“倒計時器CountDownLatch舉例分析”吧!

CountDownLatch見名思義,即倒計時器,是多線程并發(fā)控制中非常有用的工具類,它可以控制線程等待,直到倒計時器歸0再繼續(xù)執(zhí)行。

給你出個題,控制5個線程執(zhí)行完后主線徎再往下執(zhí)行,并統(tǒng)計5個線程的所耗時間。當然我們可以通過join的形式完成這道題,但如果我說統(tǒng)計100個1000個線程呢?難道要寫1000個join等待嗎?這顯然是不現(xiàn)實的。

廢話少說,我們來做一個例子看看上面的題怎么實現(xiàn),并理解倒計時器。

倒計時器CountDownLatch舉例分析

首先通過new CountDownLatch(5)約定了倒計時器的數(shù)量,在這里也是線程的數(shù)量,每個線程執(zhí)行完后再對倒計時器-1。countDown()方法即是對倒計時器-1,這個方法需要放在finally中,一定要保證在每個線程中得到釋放,不然子線程如果因為某種原因報錯倒計時器永遠不會清0,則會導報主線程會一直等待。

await()方法即是主線程阻塞等待倒計器歸0后再繼續(xù)往下執(zhí)行,當然await可以帶時間進去,等待多久時間后不管倒計時器有沒有歸0主線程繼續(xù)往下執(zhí)行。

如上面的例子所示,我們輸出了倒計時器最后的數(shù)字0,表示倒計時器歸0了,也輸出了從開始到結(jié)束所花費的時間。從這個例子可以完全理解倒計時器的含義,這個工具類在實際開發(fā)經(jīng)常有用到,也很好用。

感謝各位的閱讀,以上就是“倒計時器CountDownLatch舉例分析”的內(nèi)容了,經(jīng)過本文的學習后,相信大家對倒計時器CountDownLatch舉例分析這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI