juc-locks包
1. 简介
java.util.concurrent.locks
包含常用的锁实现,重点研究AbstractQueuedSynchronizer、ReentrantLock、ReentrantReadWriteLock、StampedLock。
AbstractQueuedSynchronizer:提供了独占锁和共享锁两种锁实现,通过双向队列实现。
ReentrantLock:可重入锁,通过继承了AbstractQueuedSynchronizer的内部类Sync实现了锁逻辑。
ReentrantReadWriteLock:可重入读写锁,提供读锁、写锁的实现。
StampedLock:是ReentrantReadWriteLock的扩展,因为ReentrantReadWriteLock是写互斥的,容易写饿死,所以StampedLock提供了写的乐观锁优化。
更多详情,后续分别撸源码详细介绍。
2.主要类图