首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

java.util.concurrent 之5:倒计数的锁

2012-11-08 
java.util.concurrent 之五:倒计数的锁从名字可以看出,CountDownLatch是一个倒数计数的锁,当倒数到0时触发

java.util.concurrent 之五:倒计数的锁
    从名字可以看出,CountDownLatch是一个倒数计数的锁,当倒数到0时触发事件,也就是开锁,其他人就可以进入了。在一些应用场合中,需要等待某个条件达到要求后才能做后面的事情;同时当线程都完成后也会触发事件,以便进行后面的操作。


CountDownLatch最重要的方法是countDown()和await(),前者主要是倒数一次,后者是等待倒数到0,如果没有到达0,就只有阻塞等待了。

一个CountDownLatch实例是不能重复使用的,也就是说它是一次性的,锁一经被打开就不能再关闭使用了,如果想重复使用,请考虑使用CyclicBarrier。

下面的例子简单的说明了CountDownLatch的使用方法,模拟了100米赛跑,10名选手已经准备就绪,只等裁判一声令下。当所有人都到达终点时,比赛结束。

同样,线程池需要显式shutdown。



可能的结果:
Game StartNo.4 arrivedNo.6 arrivedNo.8 arrivedNo.5 arrivedNo.10 arrivedNo.3 arrivedNo.2 arrivedNo.7 arrivedNo.1 arrivedNo.9 arrivedGame Over


热点排行