Synchronized与重入锁ReenTrantLock的区别 个人总结

Synchronized与重入锁ReenTrantLock的区别

ReenTrantLock比Synchronized多了三个功能

1.      等待可中断

在持有锁的等待线程尝试集不释放锁的时候,等待线程可以选择放弃等待

2.      公平锁按照申请锁的顺序来一次获取锁称为公平锁,但synchronized是非公平锁,ReentrantLock可以通过构造函数实现公平锁

3.      绑定多个Condition

通过多次newCondition可以获得多个Condition对象,可以简单实现比较复杂的线程同步功能

 

可重入性说明:

ReenTrantLock的字面意思就是再进入的锁

其实synchronize关键字所使用的也是可重入的

同步锁 原理说明
同一个线程每次进入一次,锁的计数器都自增1,所以要等到锁的计数器下降为0时才能释放锁

 

 

 

你可能感兴趣的:(java概率总结)