synchronized 和lock的区别是什么

  1. ReentrantLock 是java.util.concurrent.locks包下 Lock接口的一个具体实现
  2. 可重入性:
  • synchronized和ReentrantLock都是可重入的,即同一个线程可以多次获取同一个锁
  1. 公平性
  • synchronized的锁是非公平的,即锁的获取顺序是不确定的。
  • ReentrantLock支持公平锁和非公平锁
  1. 中断响应
  • synchronized不支持响应中断,线程在等待锁时无法响应中断
  • ReentrantLock 支持响应中断,线程在等待锁时可以响应中断。
  1. 锁绑定条件
  • synchronized不支持绑定多个条件
  • ReentrantLock可以与多个Condition 对象结合,实现更复杂的线程同步机制
  1. 性能
posted @ 2025-05-17 17:41  kuki'  阅读(4)  评论(0)    收藏  举报