Synchronized与Lock的区别?

1. Synchronized是Java的关键字,在jvm层面实现加锁和解锁。Lock是一个接口,在代码层面实现加锁解锁

2. Synchronized可以用在代码块、方法上。Lock只能写在代码里。

3. S在代码块执行完成或出现异常时自动释放锁,而L不会自动释放锁,需要在funally显式释放锁。

4. S会导致线程拿不到锁一直等待,L可以设置获取锁失败的超时时间。

5. S无法得知是否获取锁成功,L可以通过tryLock得知加锁是否成功。

6. S锁可重入、不可中断、非公平;L锁可重入,可中断,可公平/不公平,并可以细分读写锁以提高效率。

人嘛了
2022-03-16
在牛客打卡56天,今天学习:刷题 29 道
全部评论

相关推荐

不愿透露姓名的神秘牛友
07-11 11:21
被夸真的超级开心,好可爱的姐姐
码农索隆:老色批们不用脑补了,我把金智妮的图找来了查看图片
点赞 评论 收藏
分享
仁者伍敌:牛子这些人还会点一个自动回复,boss都不带回复的
点赞 评论 收藏
分享
Gaynes:查看图片
点赞 评论 收藏
分享
练习生懒羊羊:开飞机把这个公司创飞吧
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务