账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    JAVA中当锁的是类时,锁会存在哪里?
    62
    0
    已知:锁会存在被锁资源的对象头中,不同级别的锁会存储不同的内容,通过这些数据来判断该资源是否有线程抢到了锁。那当Synchronized锁的是class时,这些数据该存在哪里呢?每个对象都存一份同一的数据?还是在方法区的Class中?亦或者堆中的一块独特区域?百度了一下没找到这方面的答案,求大神解答!
    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 在Java中,当锁的是类时,锁实际上锁定的是类的Class对象。每个类在Java虚拟机(JVM)中都有一个对应的Class对象实例,这个对象是全局唯一的。当我们对类进行同步控制时,实际上是获取了该类的Class对象的监视器锁(也称为内置锁或Monitor锁)。

      例如:

      java public class MyClass { public static synchronized void method() { // ... } }

      在这个例子中,synchronized关键字修饰的是静态方法,这意味着锁住的是MyClass的Class对象,因此在同一时刻,只有一个线程可以访问MyClass的任意静态同步方法。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部