如何使用Java Barrier实现线程同步

   2024-10-01 9820
核心提示:在Java中,可以使用 CyclicBarrier 类来实现线程同步。CyclicBarrier 是一个同步辅助类,允许一组线程在达到某个屏障点之前互相

在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() 方法来等待其他线程,直到所有线程都到达屏障点后才会继续执行。

 
举报打赏
 
更多>同类物流大全
推荐图文
推荐物流大全
点击排行

网站首页  |  关于我们  |  联系方式 | 网站留言    |  赣ICP备2021007278号