![](https://csdnimg.cn/release/download_crawler_static/41632367/bg1.jpg)
简约聊聊 Synchronized 和 ReentrantLock 锁
2021-08-01
前言
前 些 天 偶 然 阅 读 到 了 一 篇 IBM 博 客 , 叙 述 Synchronized ,
ReentrantLock 锁的区分以及相关的功能比较,读完发觉获益匪浅,本人
之前对于这块学问了解的还挺浅的。所以本文就是对此的一个小结吧。这
里笔者将次要争辩这么几个话题:Synchronized 和 ReentrantLock 锁的
区分,二者的功能比较,以及具体场景下的锁选择问题(其实也就是二者
的优劣势比较了)。
Synchronized 锁和 ReentrantLock 锁的
异同
Synchronized 关键字锁和 ReentrantLock 锁在多线程编程中格外常见,
尤其是前者。那么这两者到底有什么区分呢?总结下来有下面几点:
Synchronized 锁会自带释放锁,无须用户本人执行释放锁操作
,而 ReentrantLock 需要执行 lock,unlock 操作。
ReentrantLock 支持更多锁原语操作,比如锁猎取,锁中缀等待
等操作,这些比较高级的属性在 Synchronized 上是没有的。
在功能上,ReentrantLock 锁在锁高竞争条件下会呈现出更好的
功能,相较于 Synchronized 锁。