synchronized和ReentrantLock的区别

  1. sychronized 是一个关键字,ReentrantLock 是一个类
  2. sychronized 会自动的加锁与释放锁,ReentrantLock 需要程序员手动加锁与释放锁
  3. sychronized 的底层是JVM层面的锁,ReentrantLock 是API层面的锁
  4. sychronized 是非公平锁,ReentrantLock 可以选择公平锁或非公平锁
  5. sychronized 锁的是对象,锁信息保存在对象头中,ReentrantLock 通过代码中 int 类型的state 标识来标识锁的状态
  6. sychronized底层有一个锁升级的过程
posted @ 2023-09-17 01:26  乐子不痞  阅读(16)  评论(0编辑  收藏  举报
回到顶部