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

溫馨提示×

java怎么等待多個線程結束

小億
81
2023-11-06 20:43:12
欄目: 編程語言

Java中可以使用CountDownLatch類來等待多個線程結束。

CountDownLatch類是Java提供的一個同步輔助類,它可以使一個或多個線程等待其他線程完成操作后再繼續執行。

具體步驟如下:

  1. 創建一個CountDownLatch對象,并將計數器初始化為線程數。
  2. 在每個線程的操作完成后,調用CountDownLatch對象的countDown()方法,將計數器減1。
  3. 在主線程中,調用CountDownLatch對象的await()方法,等待所有線程完成操作,當計數器為0時,主線程恢復執行。

示例代碼如下:

import java.util.concurrent.CountDownLatch;

public class WaitMultipleThreads {
    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 MyRunnable(latch));
            thread.start();
        }

        try {
            latch.await(); // 等待所有線程執行完成
            System.out.println("All threads have finished.");
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }

    static class MyRunnable implements Runnable {
        private final CountDownLatch latch;

        public MyRunnable(CountDownLatch latch) {
            this.latch = latch;
        }

        @Override
        public void run() {
            // 線程操作邏輯
            // ...

            latch.countDown(); // 線程執行完畢,計數器減1
        }
    }
}

在這個示例中,首先創建了一個CountDownLatch對象,并將計數器初始化為5。然后通過一個循環創建了5個線程,并將CountDownLatch對象作為參數傳遞給每個線程的構造函數。

在每個線程的run()方法中,執行線程操作的邏輯,并在最后調用latch.countDown()方法將計數器減1。

最后,在主線程中調用latch.await()方法,等待所有線程執行完成。當計數器為0時,主線程恢復執行,輸出"All threads have finished"。

0
高邑县| 涞源县| 龙游县| 思南县| 拉萨市| 苍溪县| 荣昌县| 白城市| 湖州市| 开阳县| 池州市| 吉木乃县| 平利县| 靖江市| 宁明县| 霍城县| 永新县| 马龙县| 乌什县| 木兰县| 胶南市| 台前县| 阳西县| 长寿区| 赤壁市| 舞阳县| 鄄城县| 西乌珠穆沁旗| 乌拉特后旗| 兰西县| 嘉荫县| 东丽区| 红原县| 莱西市| 太保市| 三原县| 瑞金市| 乡宁县| 和平县| 镇坪县| 上虞市|