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

溫馨提示×

如何使用Java Barrier實現線程同步

小樊
81
2024-08-16 08:20:37
欄目: 編程語言

在Java中,可以使用 CyclicBarrier 類來實現線程同步。CyclicBarrier 是一個同步輔助類,允許一組線程在達到某個屏障點之前互相等待。

下面是一個使用 CyclicBarrier 實現線程同步的示例代碼:

import java.util.concurrent.CyclicBarrier;

public class BarrierExample {
    public static void main(String[] args) {
        // 創建一個 CyclicBarrier,指定需要等待的線程數量為3
        CyclicBarrier barrier = new CyclicBarrier(3);

        // 創建三個線程
        Thread thread1 = new Thread(new Worker(barrier));
        Thread thread2 = new Thread(new Worker(barrier));
        Thread thread3 = new Thread(new Worker(barrier));

        // 啟動三個線程
        thread1.start();
        thread2.start();
        thread3.start();
    }

    static class Worker implements Runnable {
        private CyclicBarrier barrier;

        public Worker(CyclicBarrier barrier) {
            this.barrier = barrier;
        }

        @Override
        public void run() {
            try {
                System.out.println(Thread.currentThread().getName() + " 正在執行任務...");
                // 等待所有線程到達屏障點
                barrier.await();
                System.out.println(Thread.currentThread().getName() + " 完成任務");
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
}

在上面的示例中,創建了一個 CyclicBarrier 對象并指定需要等待的線程數量為3。然后創建了三個線程,并在每個線程中執行任務。每個線程執行任務時會調用 barrier.await() 方法來等待其他線程,直到所有線程都到達屏障點后才會繼續執行。

0
张家川| 确山县| 贡觉县| 徐闻县| 邹平县| 余江县| 原平市| 南京市| 鄂尔多斯市| 那坡县| 泰州市| 山丹县| 巩义市| 巴楚县| 松溪县| 凉城县| 简阳市| 运城市| 武平县| 黔江区| 安顺市| 富宁县| 博湖县| 循化| 恩施市| 兖州市| 庆城县| 延边| 本溪| 新疆| 和林格尔县| 广东省| 余江县| 长治市| 新和县| 璧山县| 方正县| 新龙县| 资溪县| 洛南县| 五大连池市|