0

ReentrantLock和synchronized的区别

2024.10.11 | cuithink | 10次围观

核心区别:


  • ReentrantLock是个类,synchronized是关键字,当然都是在JVM层面实现互斥锁的方式


效率区别:


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


底层实现区别:


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


功能向的区别:


  • ReentrantLock的功能比synchronized更全面。

    • ReentrantLock支持公平锁和非公平锁

    • ReentrantLock可以指定等待锁资源的时间。


选择哪个:如果你对并发编程特别熟练,推荐使用ReentrantLock,功能更丰富。如果掌握的一般般,使用synchronized会更好


粤ICP备16076548号
发表评论