ReentrantLock和synchronized的区别

样子的木偶
样子的木偶
发布于 2023-12-30 / 19 阅读
0
0

ReentrantLock和synchronized的区别

1、ReentrantLock是一个类,synchronized是一个关键字,都是在JVM层面实现的互斥锁的方式。

2、功能方面ReentrantLock的功能要比synchrized更为全面,RenntrantLock能够支持公平锁和非公平锁,synchronized只能支持非公平锁、ReentrantLock可以指定等待锁资源的时间。

3、效率区别:

  • 如果竞争比较激烈,推荐ReentrantLock去实现,不存在锁升级概念。而synchronized是存在锁升级概念的,如果升级到重量级锁,是不存在锁降级的。

底层实现区别:

  • 实现原理是不一样,ReentrantLock基于AQS实现的,synchronized是基于ObjectMonitor


评论