上一页 1 ··· 9 10 11 12 13 14 15 16 17 ··· 81 下一页
摘要: 上一讲描述了耦合在节点内部的访问者,访问逻辑放在每个节点之中,不方便维护和修改 今天我们描述经典的访问者模式 UML图如下 简单描述下,要实现一个家谱类Genealogy的遍历,家谱包含所有家族成员,包括爷爷、爸爸、叔叔、我和弟弟 首先会实现一个Element的接口,里面只有一个accept方法。所 阅读全文
posted @ 2022-08-17 10:57 Mars.wang 阅读(26) 评论(0) 推荐(0) 编辑
摘要: 内嵌式访问者模式 就是一棵树上的所有节点都有一个visit方法,每个父节点定义子节点的访问顺序。 因为访问逻辑都在节点内部,得名内嵌式访问者 下面展示一个demo,家谱是典型的树状结构,爷爷下面又爸爸和叔叔,爸爸下面又我和兄弟,依次访问。 public abstract class Node { a 阅读全文
posted @ 2022-08-17 09:58 Mars.wang 阅读(21) 评论(0) 推荐(0) 编辑
摘要: Java支持同步机制的是Monitor。Monitor就像是拥有一个特殊房间的建筑,在同一时间里,这间特殊的房间只能被一个线程拥有。 enter the monitor:进入这幢建筑acquiring the monitor:进入建筑里的特殊房间owning the monitor:拥有特殊房间的所 阅读全文
posted @ 2022-08-04 14:31 Mars.wang 阅读(90) 评论(0) 推荐(0) 编辑
摘要: 考虑一个场景,轮流打印0-100以内的技术和偶数。通过使用 synchronize 的 wait,notify机制就可以实现,核心思路如下:使用两个线程,一个打印奇数,一个打印偶数。这两个线程会共享一个数据,数据每次自增,当打印奇数的线程发现当前要打印的数字不是奇数时,执行等待,否则打印奇数,并将数 阅读全文
posted @ 2022-08-04 14:22 Mars.wang 阅读(135) 评论(0) 推荐(0) 编辑
摘要: unsafe中对应拥有三个方法 compareAndSwapObject ,compareAndSwapInt和compareAndSwapLong ,他们都被标记为native compareAndSwapObject它的核心实现为 oop res = oopDesc::atomic_compar 阅读全文
posted @ 2022-08-04 14:10 Mars.wang 阅读(72) 评论(0) 推荐(0) 编辑
摘要: LockSupport是用来创建locks的基本线程阻塞基元,比如AQS中实现线程挂起的方法,就是park,对应唤醒就是unpark。JDK中有使用的如下 LockSupport提供的是一个许可,如果存在许可,线程在调用park的时候,会立马返回,此时许可也会被消费掉,如果没有许可,则会阻塞。调用u 阅读全文
posted @ 2022-08-04 13:41 Mars.wang 阅读(315) 评论(0) 推荐(0) 编辑
摘要: 转载:https://www.163.com/dy/article/G497PG2S0531A0HG.html 如果你想深入研究Java并发的话,那么AQS一定是绕不开的一块知识点,Java并发包很多的同步工具类底层都是基于AQS来实现的,比如我们工作中经常用的Lock工具ReentrantLock 阅读全文
posted @ 2022-08-04 10:31 Mars.wang 阅读(221) 评论(0) 推荐(0) 编辑
摘要: 转载:https://www.cnblogs.com/yufeng218/p/13028549.html 多线程编程中,有可能会出现多个线程同时访问同一个共享、可变资源的情况;这种资源可能是:对象、变量、文件等。 由于线程执行的过程是不可控的,所以需要采用同步机制来协同对对象可变状态的访问,那么我们 阅读全文
posted @ 2022-08-03 19:17 Mars.wang 阅读(112) 评论(0) 推荐(0) 编辑
摘要: 转载:https://www.jianshu.com/p/279baac48960 参考:https://www.cnblogs.com/yufeng218/p/13090453.html 谈到并发,不得不谈ReentrantLock;而谈到ReentrantLock,不得不谈AbstractQue 阅读全文
posted @ 2022-08-03 19:04 Mars.wang 阅读(26) 评论(0) 推荐(0) 编辑
摘要: 前几天看到一个面试题目:有一个长度为2000的字符串,开三个线程去判断字符串中”u51”的个数。 当时看到这个题目的时候,对并发编程是没有什么经验的,在实际项目多线程的应用也只有一两次。最近在恶补《Java并发编程的艺术》,对这个题目就有了解题的思路了。在这里记录一下对该题的解法和思路。 一开始的时 阅读全文
posted @ 2022-08-03 17:30 Mars.wang 阅读(55) 评论(0) 推荐(0) 编辑
上一页 1 ··· 9 10 11 12 13 14 15 16 17 ··· 81 下一页