上篇文章通过ReetrantLock分析了独占锁模式的实现原理,即基于AQS同步框架,本篇打算从Semaphore入手分析共享锁模式的实现原理,与独占锁模式不同的是,共享锁模式允许同一个时刻多个线程可获取同步状态。本篇的思路是先说明Semaphore的基本用法,再通过Semaphore的内部实现原理分析共享锁的实现,实际上其内部也是基于AQS同步器实现的,在稍后我们将会看到这事实。如果想了解独占锁模式在AQS内部的实现原理,可浏览博主的上一篇博文:深入剖析基于并发AQS的重入锁(ReetrantLock)及其Condition实现原理,而以下是本篇的主要内容 信号量-Semaphore Semaphore共享锁的使用 Semaphore实现互斥锁 Semaphore中共享锁的实现 Semaphore的实现内部原理概要 非公平锁中的共享锁 公平锁中的共享锁 小结