Java中CountDownLatch工具類詳細(xì)解析
Java中CountDownLatch工具類詳細(xì)解析
創(chuàng)建CountDownLatch對象時,會傳入一個count數(shù)值,該對象每次調(diào)用countDown()方法會使count -- ,就是count每次減1; 調(diào)用await()方法,程序會阻塞等待,當(dāng)count被減到0了之后,await()后面的程序解除阻塞,可以繼續(xù)運(yùn)行。 阻塞的是調(diào)用await()方法的后續(xù)代碼,調(diào)用countDown()方法count自減1,當(dāng)count=0 時解除阻塞。 如:
CountDownLatch countDownLatch = new CountDownLatch(4); //初始 count = 4 countDownLatch.countDown(); // count = 4 -1; countDownLatch.countDown(); // count = 3-1; countDownLatch.await(); //當(dāng)count =0 ,可以執(zhí)行后續(xù)代碼
代碼示例1: 當(dāng)count不為0時,程序會一直等待。
import java.util.concurrent.CountDownLatch;
public class Test {
public static void main(String[] args) throws InterruptedException {
CountDownLatch countDownLatch = new CountDownLatch(5);
new Thread(new Runnable() {
@Override
public void run() {
System.out.println(Thread.currentThread().getName()+"已運(yùn)行!");
countDownLatch.countDown();
}
}).start();
countDownLatch.await();
System.out.println(" 程序執(zhí)行完畢! ");
}
}

代碼示例2:count=0解除阻塞。
import java.util.concurrent.CountDownLatch;
public class Test1 {
public static void main(String[] args) throws InterruptedException {
CountDownLatch countDownLatch = new CountDownLatch(5);
for(int i = 0 ; i < 5 ; i++){
new Thread(new Runnable() {
@Override
public void run() {
System.out.println(Thread.currentThread().getName()+"已運(yùn)行!");
countDownLatch.countDown();
}
}).start();
}
countDownLatch.await();
System.out.println(" 程序執(zhí)行完畢! ");
}
}

到此這篇關(guān)于Java中CountDownLatch工具類詳細(xì)解析的文章就介紹到這了,更多相關(guān)CountDownLatch工具類內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
MyBatis-Plus使用動態(tài)表名分表查詢的實(shí)現(xiàn)
本文主要介紹了MyBatis-Plus使用動態(tài)表名分表查詢,主要是動態(tài)修改表名的幾種常見場景,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2025-11-11
關(guān)于SpringBoot中的XA事務(wù)詳解
這篇文章主要介紹了關(guān)于SpringBoot中的XA事務(wù)詳解,事務(wù)管理可以確保數(shù)據(jù)的一致性和完整性,同時也可以避免數(shù)據(jù)丟失和沖突等問題。在分布式環(huán)境中,XA?事務(wù)是一種常用的事務(wù)管理方式,需要的朋友可以參考下2023-07-07
Java將RTF轉(zhuǎn)換為PDF格式的實(shí)現(xiàn)
本文主要介紹了Java將RTF轉(zhuǎn)換為PDF格式的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-07-07
通過實(shí)例學(xué)習(xí)Either 樹和模式匹配
這篇文章主要介紹了通過實(shí)例學(xué)習(xí)Either 樹和模式匹配,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,,需要的朋友可以參考下2019-06-06

