中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

JAVA中CountDownLatch怎么使用

小億
101
2023-09-12 11:50:43
欄目: 編程語言

在Java中,CountDownLatch是一個同步輔助類,它可以讓一個或多個線程等待其他線程完成操作后再繼續執行。CountDownLatch可以用于以下場景:

  1. 主線程等待多個子線程完成后再執行。

  2. 多個子線程等待主線程完成某個任務后再開始執行。

CountDownLatch的使用步驟如下:

  1. 創建一個CountDownLatch對象,指定需要等待的線程數量。

  2. 在需要等待的線程中,調用CountDownLatch的await()方法,使線程進入等待狀態,直到計數器減為0。

  3. 在其他線程執行完需要等待的任務后,調用CountDownLatch的countDown()方法,將計數器減1。

  4. 如果主線程需要等待其他線程完成后再執行,可以在主線程中調用CountDownLatch的await()方法,使主線程進入等待狀態。

  5. 當計數器減到0時,所有等待的線程將被喚醒,繼續執行。

下面是一個簡單的示例代碼:

import java.util.concurrent.CountDownLatch;
public class CountDownLatchExample {
public static void main(String[] args) {
int threadCount = 5;
CountDownLatch latch = new CountDownLatch(threadCount);
for (int i = 0; i < threadCount; i++) {
Thread thread = new Thread(new WorkerThread(latch));
thread.start();
}
try {
latch.await(); // 主線程等待所有子線程執行完畢
System.out.println("All threads have finished.");
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
class WorkerThread implements Runnable {
private CountDownLatch latch;
public WorkerThread(CountDownLatch latch) {
this.latch = latch;
}
@Override
public void run() {
// 執行需要等待的任務
System.out.println("Thread " + Thread.currentThread().getName() + " is running.");
// 任務執行完畢后,調用countDown()方法將計數器減1
latch.countDown();
}
}

在上面的示例代碼中,主線程創建了5個WorkerThread線程,并將CountDownLatch對象作為參數傳遞給它們。每個WorkerThread線程執行完任務后,調用latch.countDown()方法將計數器減1。主線程調用latch.await()方法進入等待狀態,直到計數器減為0,所有子線程執行完成。最后,主線程輸出"All threads have finished."。

0
厦门市| 宁强县| 洪泽县| 健康| 登封市| 当雄县| 榆林市| 湄潭县| 璧山县| 梁山县| 诏安县| 白山市| 临漳县| 江达县| 老河口市| 安仁县| 开化县| 邢台县| 长寿区| 呼伦贝尔市| 曲靖市| 武宁县| 阆中市| 开化县| 濮阳市| 苗栗市| 栾川县| 吉首市| 盐源县| 资阳市| 贵南县| 秀山| 通辽市| 全椒县| 永修县| 陵川县| 慈溪市| 滨州市| 临江市| 介休市| 敦煌市|