1.AQS原理

1.概述:

全称是AbstractQueuedSynchronizer ,是阻塞式锁和相关的同步器工具的框架

特点:

1.用state属性来表示资源的状态(分为独占模式和共享模式),子类需要定义如何维护这个状态,控制如何获取锁和释放锁

  1. getState--获取state状态
  2. setState--设置state状态
  3. compareAndSetState --cas机制设置state状态
  4. 独占模式是只有一个线程能够访问资源,而共享模式可以允许多个线程访问资源

提供了基于FIFO的等待队列,类似于Monitor的EntryList

条件变量来实现等待,唤醒机制,支持多个条件变量,类似于Monitor的WaitSet