在 Java 中,您可以使用 CyclicBarrier 类设置屏障阈值。 CyclicBarrier 类有一个构造函数,该构造函数将其应等待的线程数作为参数。 这个数字就是障碍阈值。 当等待线程数达到指定阈值时,所有线程被释放并继续执行。
以下是示例代码,演示如何设置 CyclicBarrier 阈值。
导入 java.util.concurrent.BrokenBarrierException;
导入 java.util.concurrent.CyclicBarrier ;
public class BarrierExample {
public static void main(String[] args ) {
intnumberOfThreads = 3; // 将屏障阈值设置为 3
CyclicBarrier Barrier = new CyclicBarrier(numberOfThreads, new Runnable() {
@Override
public void run() {[ h] System.out.println( "所有线程都已到达屏障");
}
});
for (int i = 0; i <numberOfThreads; i++) {[h ] 螺纹螺纹 =new Thread(new Worker(barrier));
thread.start();
}
}
静态类 Worker 实现 Runnable {
private CyclicBarrier Barrier;
[ h] public Worker(CyclicBarrier Barrier) {
this.barrier = Barrier;
}
@Override
public void run() {
尝试 {
System. .println(Thread.currentThread().getName() + "正在等待barrier");
Barrier.await(); // 等待所有线程到达Barrier
Masu。 System.out.println(Thread.currentThread().getName() + "通过了屏障");
} catch (InterruptedException | BrokenBarrierException e) {[ h] e.printStackTrace();
}[h ] }
}[h ]}
在上面的例子中,我创建了一个 CyclicBarrier 对象并指定了阈值 3。 接下来创建三个工作线程,每个线程在执行过程中调用CyclicBarrier的await()方法来等待其他线程。 一旦所有线程到达屏障,就执行指定的可执行任务,并且每个线程继续执行。
以上内容来源于网络,不代表本站全部观点。 欢迎关注:zhujipindao.com
评论前必须登录!
注册