CountDownLatch 和 CyclicBarrier的特点以及区别

论坛 期权论坛 脚本     
匿名技术用户   2020-12-28 02:31   11   0

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

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

相同点

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

不同点

计数方式 CountDownLatch

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

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

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

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

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

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

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:7942463
帖子:1588486
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP