久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

JAVA中CountDownLatch怎么使用

159次閱讀
沒有評論

共計 1287 個字符,預計需要花費 4 分鐘才能閱讀完成。

在 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.”。

丸趣 TV 網 – 提供最優質的資源集合!

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-12-21發表,共計1287字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 万盛区| 错那县| 高尔夫| 渝北区| 安吉县| 霍邱县| 中牟县| 章丘市| 都昌县| 绍兴市| 六盘水市| 白银市| 自治县| 新密市| 兰州市| 枞阳县| 大理市| 宜丰县| 林芝县| 汽车| 淮阳县| 达州市| 渭源县| 东阿县| 郓城县| 林州市| 冷水江市| 个旧市| 东乡| 天津市| 元江| 安新县| 大洼县| 鄂尔多斯市| 永州市| 增城市| 关岭| 安宁市| 铁岭市| 福贡县| 同江市|