同步工具之章节小结

1. 前言

通过前面几个小节的学习,相信大家已经掌握了不少知识和技巧,本节我们一起做一个回顾总结。

2. 内容回顾

本章总共 5 个小节,介绍了 5 个典型的同步工具类,分别是 Semaphore、CountDownLatch、CyclicBarrier、Phaser 和 Exchanger 。每一个工具类介绍了基本的用法,并且搭配了编程案例。

3. 工具对比

在介绍每一类工具类时,没有过多地做彼此之间的对比,为了大家有一个更深刻的认识,下面总结这些工具类之间的应用差异。请看下面表格。

工具类 基本概念 典型应用场景
Semaphore 计数信号量,封装了对某个资源的量化控制操作 生产消费关系中的逻辑控制
CountDownLatch 同步计数器,封装了多个子线程和一个控制线程之间的同步逻辑 分头处理任务,最后做总结性处理
CyclicBarrier 循环栅栏, 封装了多个线程在某个时刻达成同步逻辑 类似 CountDownLatch
Phaser 移相器,封装了具有多阶段且每阶段并发处理的控制逻辑 如处理某个具有多阶段任务的计划
Exchanger 交换者,封装了一对线程之间的同步交换逻辑 如两个任务在处理过程中,需互相检测信息的场合

4. 实践建议

JDK 提供了的这些同步工具类,在功能上或多或少有重叠,我们该怎么加以选择使用呢?
首先需要对每类工具类的功能彻底理解,然后把握住 最简原则 加以选择。
另外,当我们学习了这些工具类之后,在实际应用中, 应该首先想到使用这些工具类,而不是自己造轮子

至此本章介绍完毕了,希望大家能反复琢磨,反复练习,争取早日掌握,早日体会到这些工具类带来的便捷。

本文来自互联网用户投稿,不拥有所有权,该文观点仅代表作者本人,不代表本站立场。
访问者可将本网站提供的内容或服务用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯本网站及相关权利人的合法权利。
本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站,邮箱:80764001@qq.com,予以删除。
© 2023 PV138 · 站点地图 · 免责声明 · 联系我们 · 问题反馈