AQS深入研究

JUC中很多锁和并发工具类的实现都依赖于AQS。
AQS方法很多,主要做了三件事情:
1. 管理同步状态。
2. 维护同步队列。
3. 阻塞和唤醒线程。

从行为上区分就是获取和释放锁。
从模式上区分是独占锁和共享锁。

实现原理:
AQS内部维护了一个FIFO队列来管理锁。一个线程首先去尝试获取锁,如果失败时,将线程和等待状态等信息打包成Node节点,加入到同步队列中阻塞起来。当持有锁的线程释放锁时,就会唤醒队列中的后继线程。
全部评论

相关推荐

评论
1
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务