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

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

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

灵活性

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

对象锁与全局锁

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

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

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

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

发布评论

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

关于作者

陈年往事

暂无简介

0 文章
0 评论
24 人气
更多

推荐作者

linfzu01

文章 0 评论 0

可遇━不可求

文章 0 评论 0

枕梦

文章 0 评论 0

qq_3LFa8Q

文章 0 评论 0

JP

文章 0 评论 0

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