• CountDownLatch与CyclicBarrier


    static class LatchRunner implements Runnable{
            CountDownLatch latch;
            
            public LatchRunner(CountDownLatch latch) {
                this.latch = latch;
            }

            @Override
            public void run() {
                try {
                    Thread.sleep(200L);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                latch.countDown();
                System.out.println("LatchRunner finish.");
            }
            
        }
        
        static class BarrierRunner implements Runnable{
            CyclicBarrier barrier;
            
            public BarrierRunner(CyclicBarrier barrier) {
                this.barrier = barrier;
            }

            @Override
            public void run() {
                try {
                    Thread.sleep(200L);
                    barrier.await();
                } catch (InterruptedException | BrokenBarrierException e) {
                    e.printStackTrace();
                }
                System.out.println("BarrierRunner finish.");
            }
            
        }

        public static void main(String[] args) throws Exception {    
            CountDownLatch latch = new CountDownLatch(2);
            Thread[] threads = {new Thread(new LatchRunner(latch)), new Thread(new LatchRunner(latch))};
            threads[0].start();
            threads[1].start();
            latch.await();
            System.out.println("main execute1");
            
            CyclicBarrier barrier = new CyclicBarrier(2);
            Thread[] threads2 = {new Thread(new BarrierRunner(barrier)), new Thread(new BarrierRunner(barrier))};
            threads2[0].start();
            threads2[1].start();
            System.out.println("main execute2");
        }

  • 相关阅读:
    2023年整理的自动化测试面试题及答案
    【Linux】进程间通信3——system V共享内存
    使用 jQuery 来动态地设置 HTML 按钮的显示和隐藏
    20kb的照片怎么弄?一分钟教会你!
    组合导航:中海达iNAV2产品描述及接口描述
    Oracle/PLSQL: Median Function
    (附源码)python主机硬件配置推荐系统 毕业设计 231155
    【算法】二分查找模板
    Vue组件的存放目录问题
    基于萤火虫算法优化的BP神经网络预测模型(Matlab代码实现)
  • 原文地址:https://blog.csdn.net/treeclimber/article/details/125514985