public classTest
{
public static Stringhello(String str)
{
String tmp = "";
tmp = tmp +str;
return tmp;
}
}
hello方法會不會有多線程安全問題呢?沒有!
靜態方法如果沒有使用靜態變量,則沒有線程安全問題。
爲什麼呢?因爲靜態方法內聲明的變量,每個線程調用時,都會新創建一份,而不會共用一個存儲單元。比如這裏的tmp,每個線程都會創建自己的一份,因此不會有線程安全問題。
注意:靜態變量,由於是在類加載時佔用一個存儲區,每個線程都是共用這個存儲區的,所以如果在靜態方法裏使用了靜態變量,這就會有線程安全問題!
原文地址:http://blog.sina.com.cn/s/blog_586b6c050100ddn9.html