# AQS 源码阅读

源码阅读的原则

  • 跑不起来不读

  • 解决问题就好 -- 目的性

  • 一条线索到底

  • 无关细节略过

  • 一般不读静态

  • 一般动态读法

源码阅读前的知识

  • 数据结构基础
  • 设计模式

# AQS 源码

AQS(AbstractQueueSynconized) 抽象的队列锁

其设计模式使用了模板模式

AQS 中的属性 state 是被 volatile 修饰的, 其队列中的加锁操作都是使用 CAS 锁执行锁定的, 所以 AQS 被称为就是 volatile + CAS

# VarHandle

指向对象的同一个引用, 能实现操作的原子性.

  1. 普通属性也能进行原子操作
  2. 比反射快, 直接操作二进制码.
上次更新时间: 2020/11/3 下午9:59:57