首页主机资讯如何使用Java Barrier实现线程同步

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

时间2024-08-16 21:02:04发布访客分类主机资讯浏览588
导读:在Java中,可以使用 CyclicBarrier 类来实现线程同步。CyclicBarrier 是一个同步辅助类,允许一组线程在达到某个屏障点之前互相等待。 下面是一个使用 CyclicBarrier 实现线程同步的示例代码: impor...

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

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: 如何使用Java Barrier实现线程同步
本文地址: https://pptw.com/jishu/694466.html
Java Barrier的工作原理是什么 C++ Halcon中如何实现三维重建

游客 回复需填写必要信息