gpt4 book ai didi

java - 静态方法访问线程内的非静态变量

转载 作者:行者123 更新时间:2023-12-01 17:30:28 24 4
gpt4 key购买 nike

我有:

public class UTIL{
public static void met(){
do_something(){
print(A.m());
}
}
}
public class A{
public <type> m;
public <type>static m(){
return m;
}
}

现在:

线程 A 包含类 A 的实例

线程 B 包含类 A 的实例

从线程 B 中,在某个时刻调用 UTIL.met。

问题:当调用 UTIL.met 时,它会使用线程 B 中 A 实例中的 m 吗?

最佳答案

When UTIL.met is called, will it use m from the instance of A in Thread B?

不,线程 A 有一个实例而线程 B 有另一个实例并不重要。 A.m 是静态的,对于所有实例都是通用的。

但是如果变量是静态的,那么两个线程都会使用同一个变量。

(换句话说,如果没有适当的同步,您将遇到令人讨厌的竞争条件。)

关于java - 静态方法访问线程内的非静态变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11538009/

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