前言
前面博客中讲的synchronized是一个隐式锁,即锁的持有与释放都是隐式的,直观上感受就是在字节码可以看到一对monitorenter、monitorexit。而这篇讲的Lock是一个显示锁,即加锁和释放都是要手动编写的。Lock的一些实现如ReetrantLock底层实现细节是依赖于AQS的。网上关于AQS的文章非常多,但是我觉得能够讲清楚的寥寥无几。下面两篇博客是无数不多的能够深入彻底的去解析AQS,所以这篇博客我只记录一下我一些看法,详细的看下面的博客。
深入剖析基于并发AQS的(独占锁)重入锁(ReetrantLock)及其Condition实现原理
剖析基于并发AQS的共享锁的实现(基于信号量Semaphore)