并发编程_模式
文章平均质量分 54
模式篇
深蓝霍克
这个作者很懒,什么都没留下…
展开
-
同步模式之 Balking(犹豫)
同步模式之 犹豫1. 定义2. 实现1. 定义Balking (犹豫)模式用在一个线程发现另一个线程或本线程已经做了某一件相同的事,那么本线程就无需再做了,直接结束返回2. 实现例如: public class MonitorService { // 用来表示是否已经有线程已经在执行启动了 private volatile boolean starting; public void start() { log.info原创 2021-10-02 09:51:21 · 117 阅读 · 0 评论 -
同步模式之保护性暂停
Guarded Suspension1.定义实例1.定义即 Guarded Suspension,用在一个线程等待另一个线程的执行结果要点有一个结果需要从一个线程传递到另一个线程,让他们关联同一个 GuardedObject如果有结果不断从一个线程到另一个线程那么可以使用消息队列(见生产者/消费者)JDK 中,join 的实现、Future 的实现,采用的就是此模式因为要等待另一方的结果,因此归类到同步模式实例 class GuardedObject { private Obje原创 2021-09-28 20:54:50 · 45 阅读 · 0 评论 -
同步模式之顺序控制
同步模式之顺序控制1. 固定运行顺序1.1 wait notify 版1. 固定运行顺序比如,必须先 2 后 1 打印1.1 wait notify 版 // 用来同步的对象 static Object obj = new Object(); // t2 运行标记, 代表 t2 是否执行过 static boolean t2runed = false; public static void main(String[] args) { Thread原创 2021-09-28 20:26:35 · 76 阅读 · 0 评论 -
5. 共享模型之内存
5. 共享模型之内存本章内容5.1 Java 内存模型5.2 可见性本章内容上一章讲解的 Monitor 主要关注的是访问共享变量时,保证临界区代码的原子性,这一章我们进一步深入学习共享变量在多线程间的【可见性】问题与多条指令执行时的【有序性】问题5.1 Java 内存模型JMM 即 Java Memory Model,它定义了主存、工作内存抽象概念,底层对应着 CPU 寄存器、缓存、硬件内存、CPU 指令优化等。JMM 体现在以下几个方面:原子性 - 保证指令不会受到线程上下文切换的影响原创 2021-10-01 22:06:28 · 63 阅读 · 0 评论