亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

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
瓮安县| 盐源县| 乌兰察布市| 平遥县| 怀来县| 延边| 余庆县| 竹山县| 鹿泉市| 宾川县| 仙游县| 苗栗市| 敦化市| 临夏市| 九江县| 兴宁市| 和田市| 丰宁| 永康市| 常德市| 大足县| 资兴市| 滨州市| 鹤岗市| 正镶白旗| 赤城县| 阿拉尔市| 湟中县| 太康县| 历史| 花垣县| 临漳县| 林周县| 寿光市| 繁昌县| 额敏县| 清徐县| 宝应县| 思南县| 元朗区| 漯河市|