CountDownLatch 和 CyclicBarrier的特点以及区别

 

几个月之前分别对这两个知识点源码做过一些总结,请参照如下地址

虽说之前有一笔带过两个的区别但是这次随着对技术的理解,再做一次二者的总结

相同点

他们都用作计数器的功能。
都是应用于多线程中组团执行任务的模式,以屏障作为线程集结点

不同点

计数方式CountDownLatch

使用.countDown()方法,计数器依次递减

CyclicBarrier使用.await()方法,count数依次递减,count初始值等于构造器的parties值
计数值重置CountDownLatch不重置:意味着屏障只能使用一次
CyclicBarrier重置:可以拥有多次到达屏障的机会,调用reset()方法即可重置
线程阻塞CountDownLatch

阻塞调用await()的线程,也就是所谓的主线程等待另一个或多个线程完成某事

CyclicBarrier阻塞调用await()的线程,也就是多个子线程互相等待,当所有子线程都完成时一起继续下一个事情
查看计数CountDownLatchgetCount()方法:获取当前计数值,也就是还剩多少个线程名额未执行
CyclicBarrier

gerParties()方法:屏障对象数,初始化屏障对象数

getNumberWaiting()方法:在屏障处等待的线程个数

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值