栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Synchronized和Reetrantlock的区别

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Synchronized和Reetrantlock的区别

相同点
1、都是用来协调多线程中的共享对象、变量的访问
2、都是可重入锁,即同一线程可多次获得同一锁
3、都保证了可见性和互斥性
不同点
1、底层实现:synchronized是Java的关键字,由JVM提供。而ReetrantLock是JDK1.5之后提供的API层面的
2、是否可手动释放:synchronized自动释放,ReetrantLock通过lock和unlock配合try和finally实现
3、是否可中断:synchronized只有再发生异常时可中断;而ReetrantLock可通过trylock(long timeout,TimeUnit unit)设置超时时间或lockInterruptibly()放到代码块中,调用interrupt方法进行中断。
4、是否公平锁:synchronized是非公平锁,而ReetrantLock可通过构造函数传入boolean进行选择,默认false非公平锁
5、是否可绑定条件:synchronized不能绑定;而ReetrantLock可通过绑定Condition结合await()和notifyAll()方法来唤醒线程
6、锁的对象:synchronized锁的是对象,而ReetrantLock锁的是线程

参考资料

Q2
Synchronized底层实现&锁升级的过程

Q3线程池有哪些,分别由哪些特点

Q4手写快排

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/872370.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号