http://blog.youkuaiyun.com/scucj/article/details/1394523
public class Test
{
public static String hello(String str)
{
String tmp = "";
tmp = tmp + str;
return tmp;
}
}
hello方法会不会有多线程安全问题呢?没有!
静态方法如果没有使用静态变量,则没有线程安全问题。
为什么呢?因为静态方法内声明的变量,每个线程调用时,都会新创建一份,而不会共用一个存储单元。比如这里的tmp,每个线程都会创建自己的一份,因此不会有线程安全问题。
注意:静态变量,由于是在类加载时占用一个存储区,每个线程都是共用这个存储区的,所以如果在静态方法里使用了静态变量,这就会有线程安全问题!
本文详细解释了静态方法在Java中的线程安全特性,强调了静态方法内部声明的非静态变量不会导致线程安全问题的原因,以及如何避免在静态方法中使用静态变量以确保程序的正确性和效率。
4072

被折叠的 条评论
为什么被折叠?



