page contents

synchronized 和 Lock 有什么区别?

轩辕小不懂 发布于 2022-04-14 14:31
阅读 366
收藏 0
分类:Java开发
3468
Nen
Nen
- 程序员

相同点Lock 能完成 synchronized 所实现的所有功能;

不同点

Lock 有比 synchronized 更精确的线程语义和更好的性能;

synchronized 会自动释放锁,而 Lock 一定要求程序员手工释放,并且必须在finally从句中释放;

通过 Lock 可以知道有没有成功获取锁,而 synchronized 却无法办到

Lock 还有更强大的功能,例如,它的 tryLock 方法可以非阻塞方式去拿锁

请先 登录 后评论