草庐IT

synchronize-panes

全部标签

说下ReentrantLock原理和synchronized有什么区别?

相⽐于synchronized,ReentrantLock需要显式的获取锁和释放锁,相对现在基本都是⽤JDK7和JDK8的版本,ReentrantLock的效率和synchronized区别基本可以持平了。他们的主要区别有以下⼏点:1.等待可中断,当持有锁的线程⻓时间不释放锁的时候,等待中的线程可以选择放弃等待,转⽽处理其他的任务。2.公平锁:synchronized和ReentrantLock默认都是⾮公平锁,但是ReentrantLock可以通过构造函数传参改变。只不过使⽤公平锁的话会导致性能急剧下降。3.绑定多个条件:ReentrantLock可以同时绑定多个Condition条件对象。

说下ReentrantLock原理和synchronized有什么区别?

相⽐于synchronized,ReentrantLock需要显式的获取锁和释放锁,相对现在基本都是⽤JDK7和JDK8的版本,ReentrantLock的效率和synchronized区别基本可以持平了。他们的主要区别有以下⼏点:1.等待可中断,当持有锁的线程⻓时间不释放锁的时候,等待中的线程可以选择放弃等待,转⽽处理其他的任务。2.公平锁:synchronized和ReentrantLock默认都是⾮公平锁,但是ReentrantLock可以通过构造函数传参改变。只不过使⽤公平锁的话会导致性能急剧下降。3.绑定多个条件:ReentrantLock可以同时绑定多个Condition条件对象。