只有光头才能变强!
上一篇已经将Lock锁的基础AQS简单地过了一遍了,因此本篇主要是讲解Lock锁主要的两个子类:
ReentrantLock
ReentrantReadWriteLock
那么接下来我们就开始吧~
一、ReentrantLock锁首先我们来看看ReentrantLock锁的顶部注释,来看看他的相关特性呗:
来总结一下要点吧:
比synchronized更有伸缩性(灵活)
支持公平锁(是相对公平的)
使用时最标准用法是在try之前调用lock方法,在finally代码块释放锁
class X { private final ReentrantLock lock = new ReentrantLock(); // ... public void m() { lock.lock(); // block until condition holds try { // ... method body } finally { lock.unlock() } } }