sychnized 和 Lock 什么区别?sychnize 什么情况情况是对象锁? 什么时候是全局锁为什么?

发布于 2024-09-26 08:17:53 字数 684 浏览 27 评论 0

synchronizedLock 的区别主要在于灵活性和功能:

灵活性

  • synchronized :简单易用,语法上内置,自动释放锁,适用于快速锁定和解锁。可以是对象锁(实例方法或实例块)或类锁(静态方法)。
  • Lock :来自 java.util.concurrent.locks 包,提供更丰富的功能,如尝试锁定、可中断的锁定和定时锁等,需要手动释放锁。

对象锁与全局锁

  • 对象锁 :当使用 synchronized 修饰实例方法或对象块时,锁定的是当前对象的实例,只有该实例的线程能访问。
  • 全局锁 :当 synchronized 修饰静态方法时,锁定的是类的 Class 对象,所有线程共享,保证同一类的所有实例不能同时访问。

综上, synchronized 更适合简单场景, Lock 提供了更高的控制和灵活性。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

陈年往事

暂无简介

文章
评论
28 人气
更多

推荐作者

笑脸一如从前

文章 0 评论 0

mnbvcxz

文章 0 评论 0

真是无聊啊

文章 0 评论 0

旧城空念

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文