Java中CountDownLatch与CyclicBarrier的区别

来源:互联网 发布:我知谁掌管明天刘若英 编辑:程序博客网 时间:2024/06/06 12:59

CountDownLatch与CyclicBarrier都是Java并发框架下的两个类型,它们的作用也很相似,就是等待所有的线程都到位,然后放马所有线程。

那么它们到底有啥区别呢?

1、CountDownLatch与CyclicBarrier虽然都采用计数方法等待线程,但是CountDownLatch是做减法,到0的时候放马。CyclicBarrier做的是加法。

2、CountDownLatch等到是0的时候,就放马所有线程,但是它无法重置。CyclicBarrier也是等到线程都到位的时候,释放所有线程,但是CyclicBarrier是可以重复利用的。

3、CountDownLatch调用countDown()后计数减一,调用await()方法只进行阻塞,对计数没任何影响;CyclicBarrier调用await()方法计数加1,若加1后的值不等于构造方法的值,则线程阻塞

0 0
原创粉丝点击