作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有:
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 usem
from the instance ofA
in ThreadB
?
不,线程 A 有一个实例而线程 B 有另一个实例并不重要。 A.m
是静态的,对于所有实例都是通用的。
但是如果变量是静态的,那么两个线程都会使用同一个变量。
(换句话说,如果没有适当的同步,您将遇到令人讨厌的竞争条件。)
关于java - 静态方法访问线程内的非静态变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11538009/
我是一名优秀的程序员,十分优秀!