在Java中,可以使用CyclicBarrier类来实现线程同步。 CyclicBarrier 是一个同步帮助器类,它允许一组线程在到达特定屏障点之前相互等待。
下面是使用CyclicBarrier实现线程同步的代码示例。
import java.util.concurrent.CyclicBarrier;
public class BarrierExample { [h ] public static void main(String[] args) {
// 创建一个 CyclicBarrier,指定等待的线程数 3
CyclicBarrier Barrier = new CyclicBarrier(3);
// 创建 3 个线程
线程 thread1 = new Thread(new Worker( Barrier));
Thread2 = new Thread(new Worker(barrier));
Thread3 = new Thread(new Worker(barrier) )) ;
// 启动三个线程
thread1.start();[h ] thread2.start();
thread3.start();
}
[h ] 静态类 Worker 是 Runnable {
私有 CyclicBarrier Barrier 实现。
公共 Worker(CyclicBarrier 屏障) {
this.barrier = 屏障;
}
@Override
公共 void run() {
尝试 {
] ] System.out.println(Thread.currentThread().getName() + "正在运行任务...");
// 等待所有线程到达屏障点
Barrier.await();[ h] System.out.println(Thread.currentThread().getName() + "任务完成");
} catch (Exception e) {
e.printStackTrace() ;
}
}[ h] }
}
在上面的例子中,创建了一个 CyclicBarrier 对象,并指定等待线程数为 3。 然后创建三个线程来执行该任务。 每个线程。 每个线程执行任务时,都会调用 Barrier.await() 方法来等待其他线程。 直到所有线程都到达屏障点后才会继续执行。
以上内容来源于网络,不代表本站全部观点。 欢迎关注:zhujipindao.com
评论前必须登录!
注册