我们一起聊聊并发编程:同步工具类

CyclicBarrier 所要同步的线程个数是在构造方法中指定的,之后不能更改,而 Phaser 可以在运行 期间动态地调整要同步的线程个数。

CyclicBarrier 所要同步的线程个数是在构造方法中指定的,之后不能更改,而 Phaser 可以在运行 期间动态地调整要同步的线程个数。

一、Semaphore

Semaphore也就是信号量,提供了资源数量的并发访问控制。

使用场景:大学生到自习室抢座,写作业。

二、CountDownLatch

假设一个主线程要等待5个 Worker 线程执行完才能退出,可以使用CountDownLatch来实现。

三、CyclicBarrier

该类用于协调多个线程同步执行操作的场合。

使用场景:10个工程师一起来公司应聘,招聘方式分为笔试和面试。首先,要等人到齐后,开始笔 试;笔试结束之后,再一起参加面试。

四、Exchanger

Exchanger用于线程之间交换数据。

五、Phaser

用Phaser替代CyclicBarrier和CountDownLatch。

从JDK7开始,新增了一个同步工具类Phaser,其功能比CyclicBarrier和CountDownLatch更加强大。

特性1:动态调整线程个数

CyclicBarrier 所要同步的线程个数是在构造方法中指定的,之后不能更改,而 Phaser 可以在运行 期间动态地调整要同步的线程个数。

特性2:层次Phaser

多个Phaser可以组成如下图所示的树状结构

我们一起聊聊并发编程:同步工具类

©本文为清一色官方代发,观点仅代表作者本人,与清一色无关。清一色对文中陈述、观点判断保持中立,不对所包含内容的准确性、可靠性或完整性提供任何明示或暗示的保证。本文不作为投资理财建议,请读者仅作参考,并请自行承担全部责任。文中部分文字/图片/视频/音频等来源于网络,如侵犯到著作权人的权利,请与我们联系(微信/QQ:1074760229)。转载请注明出处:清一色财经

(0)
打赏 微信扫码打赏 微信扫码打赏 支付宝扫码打赏 支付宝扫码打赏
清一色的头像清一色管理团队
上一篇 2023年7月4日 17:08
下一篇 2023年7月4日 17:08

相关推荐

发表评论

登录后才能评论

联系我们

在线咨询:1643011589-QQbutton

手机:13798586780

QQ/微信:1074760229

QQ群:551893940

工作时间:工作日9:00-18:00,节假日休息

关注微信