ReentreantLock和sychronized的区别

一.相同点

都是阻塞式同步
也就是悲观锁

二.区别

1.功能区别

Synchronized是java语言的关键字,是由jvm实现的。而ReentrantLock它是JDK 1.5之后提供的API层面的互斥锁,需要lock()和unlock()方法配合try/finally语句块来完成。

2.性能区别

自从Synchronized引入了偏向锁,轻量级锁后,两者的性能就差不多了,在两种方法都可用的情况下,官方甚至建议使用synchronized。

3.ReentrantLock的高级点

1.等待可中断
2.公平锁
3.锁绑定多个条件,
一个ReentrantLock对象可以同时绑定对个对象。ReenTrantLock提供了一个Condition(条件)类,用来实现分组唤醒需要唤醒的线程们,而不是像synchronized要么随机唤醒一个线程要么唤醒全部线程。

参考文档:https://blog.csdn.net/zxd8080666/article/details/83214089

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容