假设我有一个Utility类,
public class Utility {
private Utility() {} //Don't worry, just doing this as guarantee.
public static int stringToInt(String s) {
return Integer.parseInt(s);
}
};
现在,假设在多线程应用程序中,线程调用了Utility.stringToInt()方法,当操作进入方法调用时,另一个线程调用传递不同s的相同方法.
在这种情况下会发生什么? Java会锁定静态方法吗?
解决方法:
这里没有问题.每个线程都将使用自己的堆栈,因此不同的s之间没有冲突点.并且Integer.parseInt()是线程安全的,因为它只使用局部变量.