Java中的大部分同步类(Lock、Semaphore、ReentrantLock等)都是基于AbstractQueuedSynchronizer(简称为AQS)实现的。AQS是一种提供了原子式管理同步状态、阻塞和唤醒线程功能以及队列模型的简单框架。
参考与感谢
https://tech.meituan.com/2019/12/05/aqs-theory-and-apply.html
https://github.com/Snailclimb/JavaGuide/blob/master/docs/java/Multithread/AQS.md
https://www.javadoop.com/post/AbstractQueuedSynchronizer-2
https://www.cnblogs.com/waterystone/p/4920797.html
https://www.cnblogs.com/chengxiao/archive/2017/07/24/7141160.html