假设我有一个定义如下的类:
public class MyClass {
private static int data;
public static staticMethod(int val){
... do something with data based on val ...
}
}
现在假设我的应用程序中有许多Java线程正在运行,它们调用静态方法
MyClass.staticMethod(int)
这个方法会在每次调用时阻塞吗?即,如果线程1首先调用该方法并且在执行该方法的运行期间,线程2调用静态方法,那么第二个线程是否必须等待第一个执行完毕?
如果答案是否定的,那么什么时候使用非同步的静态数据成员才有意义呢?