靜態方法是線程安全的


(2009-06-16 21:38:34)
標籤:

雜談

分類:.NET
先看一個類:
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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章