闭锁

作者: KeDaiBiaO1 | 来源:发表于2017-11-10 09:57 被阅读0次

一种同步工具类,可以延迟线程的进度直到闭锁的值等于0(终止状态)
可用于在执行一个任务前,必须把这个任务前的全部完成,才能执行这个任务。
比如,游戏要等所有玩家都准备好之后才开始 所有资源都初始化之后才开始加载类。

t.start();启动线程后继续向下执行,不过线程会在startGate.await();的地方等待

    public long timeTasks(int nThreads, final Runnable task)
            throws InterruptedException {
        final CountDownLatch startGate = new CountDownLatch(1);
        final CountDownLatch endGate = new CountDownLatch(nThreads);

        for (int i = 0; i < nThreads; i++) {
            Thread t = new Thread() {
                public void run() {
                    try {
                        //所有线程启动后,都会在这个地方等待startGate闭锁等于0  
                        startGate.await();
                        try {
                            //虽然是实现了runnable 不过task.run()不会启动线程 和执行普通方法一样
                            task.run();
                        } finally {
                            //每一个线程执行任务之后,countdown
                            endGate.countDown();
                        }
                    } catch (InterruptedException ignored) {
                    }
                }
            };
            t.start();
        }

        long start = System.nanoTime();
        //打开闭锁  startGate
        startGate.countDown();
        //等待endGate闭锁等0之后,继续向下执行
        endGate.await();
        long end = System.nanoTime();
        return end - start;
    }

相关文章

  • java中闭锁的CountdownLacth

    闭锁 闭锁的一个小例子

  • 闭锁

    一种同步工具类,可以延迟线程的进度直到闭锁的值等于0(终止状态)可用于在执行一个任务前,必须把这个任务前的全部完成...

  • 闭锁

    一扇没有锁的门 四个人在里面 垃圾堆在外面 日出日落 在阳台望一下狭窄的阳光 也要碰碰运气 楼梯叮叮当当 有人来回...

  • 闭锁(Latch)实现 CountDownLatch 和 栅栏

    闭锁(Latch)实现 CountDownLatch 和 栅栏 CyclicBarrier 闭锁 CountDow...

  • 如何区分Java并发中的闭锁(Latch)和栅栏(CyclicB

    闭锁概念理解 闭锁(Latch):一种同步方法,可以延迟线程的进度直到线程到达某个终点状态。通俗地讲就是,一个闭锁...

  • CountDownLatch 闭锁

    Java 5.0 在 java.util.concurrent 包中提供了多种并发容器类来改进同步容器的性能。 C...

  • CountDownLatch闭锁

    1.闭锁作用 Latch中文含义有门闩之意,闭锁的作用相当于一扇门:CountDownLatch能够使一个线程在等...

  • 闭锁——CountDownLatch

    闭锁——CountDownLatch 一、概念 闭锁是一个同步工具类,主要用于等待其他线程活动结束后,再执行后续的...

  • CountDownLatch 闭锁

    CountDownLatch闭锁是一种同步工具类 可以延迟线程的进度直到闭锁到达终止状态。Latch在英语中就是门...

  • 闭锁心理

    刘彦 中原焦点团队 沁阳智慧父母课堂 焦点讲一.高三 坚持分享第1847天 2022.2.5周六 青春期闭锁心理现...

网友评论

      本文标题:闭锁

      本文链接:https://www.haomeiwen.com/subject/rrspmxtx.html