gpt4 book ai didi

java - "Class"类对象上的锁定实现以进行同步

转载 作者:行者123 更新时间:2023-12-01 18:45:20 25 4
gpt4 key购买 nike

我正在经历this link 。据此:

Class locks are actually implemented as object locks. When the JVM loads a class file, it creates an instance of class java.lang.Class. When you lock a class, you are actually locking that class's Class object.

但是根据java规范,堆上相同类型(类)的所有对象共享单个Class对象。那么多线程同步访问对象怎么可能是这样呢?

最佳答案

A类锁

synchronized (String.class) {...}

对象锁

//doesn't matter what the lock object is as long as it's not null
private final Object lock = new Object();
...
synchronized (lock) {...} // will throw NPE if lock is null

它们都被认为是object锁定是因为String.class返回 Class<String> 的实例。

在类锁中,线程获取Class<String>实例监视器。在对象锁中,线程获取String实例监视器。

关于java - "Class"类对象上的锁定实现以进行同步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18000455/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com