摘要: 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 阅读(138) 评论(0) 推荐(0) 编辑
摘要: unsafe中对应拥有三个方法 compareAndSwapObject ,compareAndSwapInt和compareAndSwapLong ,他们都被标记为native compareAndSwapObject它的核心实现为 oop res = oopDesc::atomic_compar 阅读全文
posted @ 2022-08-04 14:10 Mars.wang 阅读(74) 评论(0) 推荐(0) 编辑
摘要: LockSupport是用来创建locks的基本线程阻塞基元,比如AQS中实现线程挂起的方法,就是park,对应唤醒就是unpark。JDK中有使用的如下 LockSupport提供的是一个许可,如果存在许可,线程在调用park的时候,会立马返回,此时许可也会被消费掉,如果没有许可,则会阻塞。调用u 阅读全文
posted @ 2022-08-04 13:41 Mars.wang 阅读(332) 评论(0) 推荐(0) 编辑
摘要: 转载:https://www.163.com/dy/article/G497PG2S0531A0HG.html 如果你想深入研究Java并发的话,那么AQS一定是绕不开的一块知识点,Java并发包很多的同步工具类底层都是基于AQS来实现的,比如我们工作中经常用的Lock工具ReentrantLock 阅读全文
posted @ 2022-08-04 10:31 Mars.wang 阅读(223) 评论(0) 推荐(0) 编辑