Java 静态方法是线程安全的


先看一个类

public class  Test{

public static  String hello(String str){

    String tmp="";

    tmp  =  tmp+str;

   return tmp;

}

}

hello方法会不会有多线程安全问题呢?没有!!

静态方法如果没有使用静态变量,则没有线程安全问题。

为什么呢?因为静态方法内声明的变量,每个线程调用时,都会新创建一份,而不会共用一个存储单元。比如这里的tmp,每个线程都会创建自己的一份,因此不会有线程安全问题

 

注意,静态变量,由于是在类加载时占用一个存储区,每个线程都是共用这个存储区的,所以如果在静态方法里使用了静态变量,这就会有线程安全问题!


总结:只要方法内含有静态变量,就是非线程安全的

发布了26 篇原创文章 · 获赞 6 · 访问量 9万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章