设为首页 加入收藏

TOP

Java线程同步之CountDownLatch
2014-11-24 01:40:34 来源: 作者: 【 】 浏览:3
Tags:Java 线程 同步 CountDownLatch

1、类说明


jdk的concurrent包中的CountDownLatch类是一个线程同步的辅助类,它使得线程可以一直等待在其它线程中执行的操作,直到此操作结束。CountDownLatch在初始化的时候指定一个大小值N,调用CountDownLatch的await方法的线程会陷入等待之中,直到这个CountDownLatch对象的countDown方法被调用N次为止,无论是在一个线程中调用N次,还是在N个线程中被调用一次。只有这个对应的CountDownLatch对象的countDown方法总被调用次数为N次之后,这个等待的线程才能继续往下执行。


其原理也容易理解,初始化的时候指定要等待的计数的次数,每调用一次countDown就对这个计数减一,直到计数被减到0,等待的线程就可以继续运行了。


2、await


CountDownLatch的await方法会使得当前线程进入等待状态,直到最新的一次计数被减到0为止。如果当前的计数已经是0了,那么这个方法会马上返回。这个函数有个代参的重载函数,可以设置一个最长的等待时长。在等待时长内,如果计数器被减到0,这个函数会返回true,或者达到等待时长,这个函数会返回false。(被中断情况下抛异常)


3、countDown


使计数减一,初始化的计数不能重新设定,只能通过countDown来对计数减一


相关阅读:


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Linux之configfs简介和编程入门 下一篇Netty的ChannelFuture

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: