首先 在java里面有 两种基础锁 一种是 synchronized(同步块) 和 CAS操作。
他们之间的区别暂不做讨论。
我们熟知一些 ReentrantLock,ReentrantReadWriteLock ,CountDownLatch都是什么锁?
点开源码后就可发现 他们都间接继承实现了AbstractQueuedSynchronizer (我们常说的AQS),而AQS的实现是依赖CAS操作的。
我们熟知一些 ReentrantLock,ReentrantReadWriteLock ,CountDownLatch都是什么锁?
点开源码后就可发现 他们都间接继承实现了AbstractQueuedSynchronizer (我们常说的AQS),而AQS的实现是依赖CAS操作的。