介绍 ReentrantLock、AQS 之前,先分析它们的来源,来自于 JUC 中的核心组件,java.util.concurrent 在并发编程中是比较会常用的工具类,里面包含了很多在并发场景下使用的组件,比如:线程池 > ThreadPoolExecutor、阻塞队列 > BlockingQueue、计数器 > CountDownLatch、循环屏障 > CyclicBarrier、信号量 > Semaphore、并发集合 > ConcurrentHashMap | CopyOnWriteArrayList |ConcurrentSkipListMap 等 ReentrantLock 与 synchronized 具有相同的基本行为、语义,但它扩展了一些其他的功能且更能灵活控制锁 在该篇博文主要介绍 ReentrantLock 是如何实现的,以及它的核心方法源码,如何结合 AQS 实现锁解决并发安全问题的 Lock 是 JUC 组件下最核心的接口,绝大部分组件都使用到了 Lock 接口,所以先以 Lock 接口作为切入点讲解后续的源码 Lock...