锁
文章平均质量分 75
高某某。。
这个作者很懒,什么都没留下…
展开
-
ReentrantLock的源码解析
首先先观察AQS AbstractQueuedSynchronizer里面的一些属性 我们会用到://没有注释的属性暂时不用看//内部双向链表的头节点private transient volatile Node head;//尾节点private transient volatile Node tail;//一个锁的状态为 0代表没有上锁 >0代表上了锁private volatile int state;//这个是我们的AQS中的静态内部类 主要是一个双向链表static fi原创 2022-04-08 10:46:59 · 267 阅读 · 0 评论 -
java底层的锁相关信息
锁的升级流程首先我们都知道synchronized在jdk1.5以前的都是直接向操作系统直接申请重量级的锁,这样做很安全,但是就是会非常的慢。所以在之后的版本中我们的synchronized进行了一系列的优化,最开始出现了轻量级锁,相对与重量级锁来说是轻量的,就是不惊动我们的操作系统,通过CAS操作修改我们的对象内存地址中的markword信息来标志它为轻量级的锁(就相当与是操作系统大哥将锁直接放在门上谁拿到谁就可以开,不用来找他拿),什么是CAS操作:CAS compare and swap 它主原创 2022-03-14 16:36:11 · 986 阅读 · 0 评论