gpt4 book ai didi

java - 基于声明为 "final static Object"的对象与简单的 "final Object"进行同步

转载 作者:行者123 更新时间:2023-11-29 07:40:01 25 4
gpt4 key购买 nike

<分区>

我有一个关于 Java 并发的问题。如果我同步一个基于对象的关键部分,将该变量声明为 final static Object 与简单地声明为 final Object 之间有什么区别。

我知道 static 关键字将变量定义为属于该类,但我对它在多线程环境中的含义有点模糊。

请引用下面的代码示例。目前我将 lock 对象声明为 private final Object lock = new Object(),如果我添加 static 关键字会有什么不同?

class ConcurrencySample {
private String message = null;
private final Object lock = new Object();
//private final static Object lock = new Object();

public void setMessage(String msg) {
synchronized (lock) {
message = msg;
}
}
public String getMessage() {
synchronized (lock) {
String temp = message;
message = null;
return temp;
}
}
}

感谢您的帮助!

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