AQS:通常指的是AbstractQueuedSynchronizer(但是它们三是相互关联的关系)—抽象的队列同步器
与LockSupport相关的锁有:ReentrantLock,ReenTrantReadWriteLock,CountDownLatch.SemaPhone等相关。
脑图:
锁:面向锁的使用者
同步器:面向锁的实现者
将抢占资源的线程封装成一个node节点
使用一个valatile修饰的变量(state)来表示同步状态
state状态等于0表示现在没有线程在等待,可以办理
大于等于1,需要等待
CLH:表示一个双向队列,里面放的是等待的线程。通过自旋的状态进行等待。
node类:waitStatus:表示每个线程等待的状态
AQS:有阻塞就排队,有排队就有队列
小总结: state + CLH的双端队列(队列里面存放的是Node)
waitState的状态