Synchronized与重入锁ReenTrantLock的区别
ReenTrantLock比Synchronized多了三个功能
1. 等待可中断
在持有锁的等待线程尝试集不释放锁的时候,等待线程可以选择放弃等待
2. 公平锁按照申请锁的顺序来一次获取锁称为公平锁,但synchronized是非公平锁,ReentrantLock可以通过构造函数实现公平锁
3. 绑定多个Condition
通过多次newCondition可以获得多个Condition对象,可以简单实现比较复杂的线程同步功能
可重入性说明:
ReenTrantLock的字面意思就是再进入的锁
其实synchronize关键字所使用的也是可重入的
同步锁 原理说明
同一个线程每次进入一次,锁的计数器都自增1,所以要等到锁的计数器下降为0时才能释放锁