同步工具之章节小结
1. 前言
通过前面几个小节的学习,相信大家已经掌握了不少知识和技巧,本节我们一起做一个回顾总结。
2. 内容回顾
本章总共 5 个小节,介绍了 5 个典型的同步工具类,分别是 Semaphore、CountDownLatch、CyclicBarrier、Phaser 和 Exchanger 。每一个工具类介绍了基本的用法,并且搭配了编程案例。
3. 工具对比
在介绍每一类工具类时,没有过多地做彼此之间的对比,为了大家有一个更深刻的认识,下面总结这些工具类之间的应用差异。请看下面表格。
工具类 | 基本概念 | 典型应用场景 |
---|---|---|
Semaphore | 计数信号量,封装了对某个资源的量化控制操作 | 生产消费关系中的逻辑控制 |
CountDownLatch | 同步计数器,封装了多个子线程和一个控制线程之间的同步逻辑 | 分头处理任务,最后做总结性处理 |
CyclicBarrier | 循环栅栏, 封装了多个线程在某个时刻达成同步逻辑 | 类似 CountDownLatch |
Phaser | 移相器,封装了具有多阶段且每阶段并发处理的控制逻辑 | 如处理某个具有多阶段任务的计划 |
Exchanger | 交换者,封装了一对线程之间的同步交换逻辑 | 如两个任务在处理过程中,需互相检测信息的场合 |
4. 实践建议
JDK 提供了的这些同步工具类,在功能上或多或少有重叠,我们该怎么加以选择使用呢?
首先需要对每类工具类的功能彻底理解,然后把握住最简原则加以选择。
另外,当我们学习了这些工具类之后,在实际应用中,应该首先想到使用这些工具类,而不是自己造轮子。
至此本章介绍完毕了,希望大家能反复琢磨,反复练习,争取早日掌握,早日体会到这些工具类带来的便捷。
最新评论
徒弟可以A师傅,学生可以A老师,为什么外包不能A正式,我觉得很正常。异性相吸这是宇宙真理
PHP天下第一(狗头叼花)
第一个不需要关注公主号直接给激活码的帖子!
客户端超时断开后,服务端如果没有设置超时机制,那也会继续等待处理,万一这期间有消息到了,那不是就接受到消息处理了,但是也没有办法返回到客户端,导致消息丢失。
企业级GO项目开发实战 Kubernetes权威指南 第六版
https://pan.baidu.com/s/1q3bnTncIACKoTZFxvx7BQw?pwd=ii7n
RabbitMQ精讲,项目驱动落地,分布式事务拔高 有吗?
Spring Cloud Alibaba 微服务架构实战 https://pan.baidu.com/s/1jF5voFRoeF0lYAzAPBWSbw?pwd=chqk