static 靜態方法 執行緒安全

2021-06-25 14:54:54 字數 366 閱讀 3926

public class test

public static string hello(string str)

string tmp = "";

tmp = tmp + str;

return tmp;

hello方法會不會有多執行緒安全問題呢?沒有!

靜態方法如果沒有使用靜態變數,則沒有執行緒安全問題。

為什麼呢?因為靜態方法內宣告的變數,每個執行緒呼叫時,都會新建立乙份,而不會共用乙個儲存單元。比如這裡的tmp,每個執行緒都會建立自己的乙份,因此不會有執行緒安全問題。

注意:靜態變數,由於是在類載入時占用乙個儲存區,每個執行緒都是共用這個儲存區的,所以如果在靜態方法裡使用了靜態變數,這就會有執行緒安全問題!

工具類 靜態方法 執行緒安全

一般來說,工具類都是靜態方法,只要靜態方法內不引用可更改狀態的靜態字段就是執行緒安全的。因為每次呼叫都會分配新的棧空間。根本還是要清楚,靜態方法內是否含有狀態可更改的共享資源。public class mythread implements runnable public mythread stri...

執行緒常用方法,執行緒安全和同步鎖

joinpackage com.thread.demo.base join方法的使用 作用 讓其主線程等待子執行緒完成後再執行 author administrator public class threadjoin catch interruptedexception e system.out.p...

static 靜態方法

乙個不需要任何主叫物件的方法就是靜態方法。靜態方法需要關鍵字static來宣告於定義,他不需要主叫物件,因為它不屬於物件而是屬於類。靜態方法可以被子類繼承,也可以被重寫,但是不能實現多型性。多型性的實現重點在於動態繫結,每一次在呼叫相應方法的時候都是去動態查詢匹配,靜態方法是在類初次載入的時候就已經...