Java多線程并發(fā)JUC包CountDownLatch閉鎖的實(shí)例
Java多線程并發(fā)JUC包 CountDownLatch 閉鎖
閉鎖是一次性對(duì)象
一旦進(jìn)入終止?fàn)顟B(tài),就不能被重置。
public class CountDownLatchDemo { public static void main(String[] args) throws InterruptedException { int count = 5; CountDownLatch countDownLatch = new CountDownLatch(count); for (int i = 0; i < count; i++) { new Tangerine(String.valueOf(i),countDownLatch).start(); } System.out.printf("main線程等待\n"); countDownLatch.await(); System.out.printf("main線程運(yùn)行結(jié)束"); } static class Tangerine extends Thread { final CountDownLatch countDownLatch; public Tangerine(String name,CountDownLatch countDownLatch) { super(name); this.countDownLatch = countDownLatch; } @Override public void run() { System.out.printf("線程%s在運(yùn)行\(zhòng)n", this.getName()); countDownLatch.countDown(); } } }
await()
等待,直到計(jì)數(shù)器中的值減為0。await(long timeout, TimeUnit unit)
可以自己設(shè)置超時(shí)時(shí)間,一旦超過(guò)這個(gè)時(shí)間,await線程被喚醒,如果返回true,說(shuō)明計(jì)數(shù)器為0,否則,不為0。countDown()
使得計(jì)數(shù)器的值減1。getCount()
得到當(dāng)前計(jì)數(shù)器的值。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
java.io.UnsupportedEncodingException異常的正確解決方法(親測(cè)有效!)
這篇文章主要給大家介紹了關(guān)于java.io.UnsupportedEncodingException異常的正確解決方法,文中介紹的辦法親測(cè)有效,java.io.UnsupportedEncodingException是Java編程語(yǔ)言中的一個(gè)異常類,表示指定的字符集不被支持,需要的朋友可以參考下2024-02-02Java:com.netflix.client.ClientException錯(cuò)誤解決
本文主要介紹了Java:com.netflix.client.ClientException錯(cuò)誤解決,主要是指出客戶端?module-sso?試圖通過(guò)負(fù)載均衡器訪問(wèn)服務(wù)時(shí),負(fù)載均衡器沒(méi)有找到可用的服務(wù)器來(lái)處理請(qǐng)求,下面就來(lái)介紹一下解決方法2024-08-08java如何實(shí)現(xiàn)基于opencv全景圖合成實(shí)例代碼
全景圖相信大家應(yīng)該都不陌生,下面這篇文章主要給大家介紹了關(guān)于java如何實(shí)現(xiàn)基于opencv全景圖合成的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2018-07-07Java中Bean轉(zhuǎn)Map問(wèn)題歸納總結(jié)
Java Bean轉(zhuǎn)Map的坑很多,最常見(jiàn)的就是類型丟失和屬性名解析錯(cuò)誤的問(wèn)題,下面這篇文章主要給大家介紹了關(guān)于Java中Bean轉(zhuǎn)Map問(wèn)題歸納總結(jié)的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-06-06Mybatis動(dòng)態(tài)sql超詳細(xì)講解
動(dòng)態(tài)SQL是MyBatis的強(qiáng)大特性之一,顧名思義就是會(huì)動(dòng)的SQL,即是能夠靈活的根據(jù)某種條件拼接出完整的SQL語(yǔ)句,下面這篇文章主要給大家介紹了關(guān)于Mybatis動(dòng)態(tài)sql的相關(guān)資料,需要的朋友可以參考下2023-04-04java導(dǎo)出pdf文件的詳細(xì)實(shí)現(xiàn)方法
這篇文章主要介紹了java導(dǎo)出pdf文件的詳細(xì)實(shí)現(xiàn)方法,包括制作模板、獲取中文字體文件、實(shí)現(xiàn)后端服務(wù)以及前端發(fā)起請(qǐng)求并生成下載鏈接,需要的朋友可以參考下2025-03-03如何在springboot項(xiàng)目中自定義404頁(yè)面
今天點(diǎn)擊菜單的時(shí)候不小心點(diǎn)開(kāi)了一個(gè)不存在的頁(yè)面,然后看到瀏覽器給的一個(gè)默認(rèn)的404頁(yè)面,這篇文章主要介紹了如何在springboot項(xiàng)目中自定義404頁(yè)面,需要的朋友可以參考下2024-05-05