synchronized 和lock的区别是什么
- ReentrantLock 是java.util.concurrent.locks包下 Lock接口的一个具体实现
- 可重入性:
- synchronized和ReentrantLock都是可重入的,即同一个线程可以多次获取同一个锁
- 公平性
- synchronized的锁是非公平的,即锁的获取顺序是不确定的。
- ReentrantLock支持公平锁和非公平锁
- 中断响应
- synchronized不支持响应中断,线程在等待锁时无法响应中断
- ReentrantLock 支持响应中断,线程在等待锁时可以响应中断。
- 锁绑定条件
- synchronized不支持绑定多个条件
- ReentrantLock可以与多个Condition 对象结合,实现更复杂的线程同步机制
- 性能

浙公网安备 33010602011771号