91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

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
若羌县| 定日县| 图们市| 宝兴县| 赣榆县| 铜山县| 临漳县| 阿合奇县| 贵定县| 德江县| 醴陵市| 全州县| 襄垣县| 贞丰县| 南丰县| 民乐县| 双辽市| 确山县| 云龙县| 巴马| 临海市| 理塘县| 韩城市| 佳木斯市| 桂林市| 时尚| 巍山| 阜南县| 竹山县| 鄱阳县| 博爱县| 琼结县| 资阳市| 资源县| 灌云县| 崇文区| 阜新| 宁南县| 诸城市| 新巴尔虎右旗| 雷山县|