ReentrantLock和Synchronized都是Java开发中最常用的锁,与Synchronized这种JVM内置锁不同的是,ReentrantLock提供了更丰富的语义.可以创建公平锁或非公平锁.响应中断.超时等待.按条件唤醒等.在某些场景下,使用ReentrantLock更适合,功能更强大. 前两篇文章,我们分析了AQS的加锁流程.以及源码实现.当时我们就说了,AQS使用了模板设计模式,父类中定义加锁流程,子类去实现具体的加锁逻辑.所以大部分加锁代码已经在父类AQS中实现了,导致Re…