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

溫馨提示×

如何設置Java Barrier的閾值

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

在Java中,可以使用CyclicBarrier類來設置Barrier的閾值。CyclicBarrier類有一個構造方法,可以指定需要等待的線程數量作為參數,這個數量就是Barrier的閾值。當等待的線程數量達到指定的閾值時,所有線程將被釋放并繼續執行。

下面是一個示例代碼,演示如何設置CyclicBarrier的閾值:

import java.util.concurrent.BrokenBarrierException;
import java.util.concurrent.CyclicBarrier;

public class BarrierExample {
    public static void main(String[] args) {
        int numberOfThreads = 3; // 設置Barrier的閾值為3

        CyclicBarrier barrier = new CyclicBarrier(numberOfThreads, new Runnable() {
            @Override
            public void run() {
                System.out.println("All threads have reached the barrier");
            }
        });

        for (int i = 0; i < numberOfThreads; i++) {
            Thread thread = new Thread(new Worker(barrier));
            thread.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() + " is waiting at the barrier");
                barrier.await(); // 等待所有線程到達Barrier
                System.out.println(Thread.currentThread().getName() + " has passed the barrier");
            } catch (InterruptedException | BrokenBarrierException e) {
                e.printStackTrace();
            }
        }
    }
}

在上面的示例中,我們創建了一個CyclicBarrier對象,并指定了閾值為3。然后創建了3個Worker線程,每個線程在執行過程中都會調用CyclicBarrier的await()方法來等待其他線程。當所有線程都到達Barrier時,會執行指定的Runnable任務,并繼續執行各個線程。

0
罗定市| 延吉市| 文山县| 洪泽县| 阿荣旗| 彩票| 阿拉善右旗| 南昌市| 郓城县| 鄂托克旗| 连南| 资溪县| 区。| 从江县| 武夷山市| 宕昌县| 栖霞市| 湘西| 庆元县| 若尔盖县| 伊金霍洛旗| 双峰县| 四平市| 广德县| 龙游县| 如东县| 永康市| 浑源县| 塘沽区| 斗六市| 三原县| 武义县| 喀什市| 拉孜县| 英山县| 海阳市| 铜山县| 疏附县| 威信县| 灵宝市| 海淀区|