美文网首页
闭锁 CountDownLatch 的使用

闭锁 CountDownLatch 的使用

作者: __笙歌4J | 来源:发表于2019-07-08 10:52 被阅读0次

    类 java.util.concurrent.CountDownLatch 是一种同步辅助,允许一个或多个线程等待,直到在其他线程中执行的一组操作完成。
    主要API:
    1.CountDownLatch(int count)
    构造一个使用给定count初始化的CountDownLatch。
    2.countDown()
    递减锁存器的计数,如果计数为零,则释放所有等待的线程。
    3.await()
    导致当前线程等待,直到锁存器计数为零,除非线程被中断。
    \color{red}{不推荐使用,有可能导致灾难后果}
    4.boolean await(long timeout, TimeUnit unit)
    导致当前线程等待,直到锁存器计数为零,除非线程被中断,或者指定的等待时间已经过了。
    返回值:如果计数为零,则为true;如果在计数为零之前等待的时间已经过了,则为false

    例子:

    import java.util.concurrent.TimeUnit;
    
    /**
     * @Auther: tzg
     * @Date: 2019/7/8 09:59
     * @Description:
     */
    public class Test {
    
        private static CountDownLatch latcher = new CountDownLatch(1);
    
        public static void main(String[] args) throws InterruptedException {
            Thread t = new Thread(new Runnable() {
                @Override
                public void run() {
                    try {
                        Thread.sleep(5000);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                    latcher.countDown();
                    System.out.println("count down");
                }
            });
            t.start();
            latcher.await();
    //        latcher.await(1, TimeUnit.SECONDS);
            System.out.println("over");
        }
    }
    

    相关文章

      网友评论

          本文标题:闭锁 CountDownLatch 的使用

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