https://blog.csdn.net/qq_29373285/article/details/85964460

1. 在实现上

synchronized是一个关键字,它基于JVM。它有锁升级过程,从偏向锁,轻量级锁,到重量级锁。

Lock是一个接口,它是基于JDK,它实现的主要实现类是ReentrantLock,它的使用也离不开AQS。

2. 在使用上

synchronized是隐式锁,加锁解锁对使用者是隐藏的,可以作用于方法,代码块和类。

Lock是显示锁,需要手动上锁和释放锁(lock和unlock)

3. 在功能上
  • Lock和synchronized都是互斥锁且支持可重入

  • Lock支持默认非公平锁,但支持公平锁,synchronized只支持非公平锁

  • lock的condition支持多个条件变量,但是synchronized

  • Lock 可中断,而 synchronized 不行

synchronized 和Lock区别

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-01-14
  • 2021-08-17
  • 2021-11-07
猜你喜欢
  • 2021-07-06
  • 2022-12-23
  • 2021-09-28
  • 2021-08-11
  • 2021-06-24
相关资源
相似解决方案