轻量级锁加锁:
线程在执行同步块的时,JVM会先在当前线程的栈帧中创建用于存储锁记录的空间,并将对象头中的MarkWord复制到锁记录中,然后线程尝试使用CAS将对象头中的MarkWord替换为指向锁记录的指针。如果成功,当前线程获得锁,如果失败,标识其他线程争夺锁。当前线程则尝试使用自旋来获取锁。
轻量级锁解锁
解锁时,会使用CAS将锁记录替换回到对象头,如果成功,说明没有竞争发生,如果失败,说明存在竞争,锁就会膨胀为重量级锁。
原子操作的实现原理:
原子操作:不可被中断 的一个或者一系列操作
Java并发编程的艺术-轻量级锁+原子操作的实现原理
最新推荐文章于 2021-05-14 22:38:15 发布