AQS
AQS:AbstractQqueuedSynchronizer,抽象队列同步器,可以认为是一个模板,提供一个框架,用于实现依赖先进先出(FIFO)等待队列的阻塞锁和相关同步器(信号量,事件等)。
提供了对资源占用、释放,线程的挂起、唤醒的逻辑。
预留了各种try方法给用户实现
可以用在各种需要控制资源争用的场景中。(ReentrantLock/CountDownLatch/Semphore)
使用
1、方法
主要有以下几个方法:
acquire(int arg)
release(int arg)
acquireShared(int arg)
releaseShared(int arg)
以上4个方法都是有final修饰的,不可以修改
try开头的4个方法,都会抛出一个异常,留给用户重写
tryAcquire(int arg)
tryRelease(int arg)
tryAcquireShared(int arg)
tryReleaseShared(int arg)
2、字段
int state :同步状态或者说重入次数
Thread owner:占有锁的线程
Queue:阻塞队列
来源:CSDN
作者:大栗子122
链接:https://blog.csdn.net/weixin_45095479/article/details/104134766