AQS
最编程
2024-05-05 14:40:40
...
概念
AQS 的全称是 AbstractQueuedSynchronized (抽象队列同步器),在java.util.concurrent.locks包下面。
AQS是一个抽象类,主要用来构建锁和同步器,比如ReentrantLock
, Semaphore
, CountDownLatch
,里面都用到了Sync类, Sync类是AQS的子类。
public abstract class AbstractQueuedSynchronizer extends AbstractOwnableSynchronizer implements java.io.Serializable {
}
AQS原理
有一个int类型的成员变量 state 表示同步状态,还有一个内置的FIFO等待队列来完成资源线程的排队工作。
/**
* The synchronization state.
*/
private volatile int state;