同步工具之章节小结
1. 前言
通过前面几个小节的学习,相信大家已经掌握了不少知识和技巧,本节我们一起做一个回顾总结。
2. 内容回顾
本章总共 5 个小节,介绍了 5 个典型的同步工具类,分别是 Semaphore、CountDownLatch、CyclicBarrier、Phaser 和 Exchanger 。每一个工具类介绍了基本的用法,并且搭配了编程案例。
3. 工具对比
在介绍每一类工具类时,没有过多地做彼此之间的对比,为了大家有一个更深刻的认识,下面总结这些工具类之间的应用差异。请看下面表格。
工具类 | 基本概念 | 典型应用场景 |
---|---|---|
Semaphore | 计数信号量,封装了对某个资源的量化控制操作 | 生产消费关系中的逻辑控制 |
CountDownLatch | 同步计数器,封装了多个子线程和一个控制线程之间的同步逻辑 | 分头处理任务,最后做总结性处理 |
CyclicBarrier | 循环栅栏, 封装了多个线程在某个时刻达成同步逻辑 | 类似 CountDownLatch |
Phaser | 移相器,封装了具有多阶段且每阶段并发处理的控制逻辑 | 如处理某个具有多阶段任务的计划 |
Exchanger | 交换者,封装了一对线程之间的同步交换逻辑 | 如两个任务在处理过程中,需互相检测信息的场合 |
4. 实践建议
JDK 提供了的这些同步工具类,在功能上或多或少有重叠,我们该怎么加以选择使用呢?
首先需要对每类工具类的功能彻底理解,然后把握住 最简原则 加以选择。
另外,当我们学习了这些工具类之后,在实际应用中, 应该首先想到使用这些工具类,而不是自己造轮子 。
至此本章介绍完毕了,希望大家能反复琢磨,反复练习,争取早日掌握,早日体会到这些工具类带来的便捷。
本文来自互联网用户投稿,不拥有所有权,该文观点仅代表作者本人,不代表本站立场。
访问者可将本网站提供的内容或服务用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯本网站及相关权利人的合法权利。
本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站,邮箱:80764001@qq.com,予以删除。
访问者可将本网站提供的内容或服务用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯本网站及相关权利人的合法权利。
本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站,邮箱:80764001@qq.com,予以删除。