gpt4 book ai didi

java - 锁定类(class)是什么意思?

转载 作者:行者123 更新时间:2023-12-01 17:11:55 26 4
gpt4 key购买 nike

如果静态同步方法在类上获取锁,那么这意味着什么。这是否意味着除非类锁已被释放,否则无法创建新对象。我尝试了一个程序来复制这一点,但我发现这并不意味着这比锁定类的确切含义意味着该类的所有实例都将被锁定。

public class StsticSyncTest implements Runnable{

public static void main(String[] args) {

Thread t = new Thread(new StsticSyncTest());
t.start();
try {
Y y = new Y();
System.out.println(y);
} catch (Exception e) {
System.out.println(e.getMessage());
}

}

@Override
public void run() {
Y y = new Y();
y.method1();
}

}
class Y{

static synchronized void method1(){
for(;;){
//System.out.println("1");
}
}

}

它给出了输出:com.nikhil.test.synchronization.Y@cac268

最佳答案

同步方法使用实例作为锁对象。

静态同步方法使用作为锁对象。

在这两种情况下,同步方法都会阻止不同线程同时对类似(实例或静态)同步方法进行其他调用。

非同步代码不会受到影响。

关于java - 锁定类(class)是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23403659/

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