類的成員分為兩類,靜態成員(static member)和例項成員(instance member)。靜態成員屬於類,例項成員則屬於物件,即類的例項。
簡單討論一下在乙個類中使用靜態字段(static field)和靜態方法(static method)是否會有執行緒安全問題。
我們在知道, 靜態字段(static field)和靜態方法(static method)的呼叫是通過類來呼叫。靜態方法不對特定的例項操作,只能訪問靜態成員。例項方法可對特定的例項操作,既能訪問靜態成員,也能訪問例項成員。
那麼,在多執行緒中使用靜態方法是否有執行緒安全問題?這要看靜態方法是是引起執行緒安全問題要看在靜態方法中是否使用了靜態成員。
因為,在多執行緒中使用同乙個靜態方法時,每個執行緒使用各自的例項字段(instance field)的副本,而共享乙個靜態字段(static field)。所以說,如果該靜態方法不去操作乙個靜態成員,只在方法內部使用例項字段(instance field),不會引起安全性問題。但是,如果該靜態方法操作了乙個靜態字段,則需要靜態方法中採用互斥訪問的方式進行安全處理。
在多執行緒中使用靜態方法是否有執行緒安全問題
在多執行緒中使用靜態方法是否有執行緒安全問題 類的成員分為兩類,靜態成員 static member 和例項成員 instance member 靜態成員屬於類,例項成員則屬於物件,即類的例項。簡單討論一下在乙個類中使用靜態字段 static field 和靜態方法 static method 是否...
在多執行緒中使用靜態方法是否有執行緒安全問題
類的成員分為兩類,靜態成員 static member 和例項成員 instance member 靜態成員屬於類,例項成員則屬於物件,即類的例項。簡單討論一下在乙個類中使用靜態字段 static field 和靜態方法 static method 是否會有執行緒安全問題。我們在知道,靜態字段 st...
在多執行緒中使用靜態方法是否有執行緒安全問題
類的成員分為兩類,靜態成員 static member 和例項成員 instance member 靜態成員屬於類,例項成員則屬於物件,即類的例項。簡單討論一下在乙個類中使用靜態字段 static field 和靜態方法 static method 是否會有執行緒安全問題。我們在知道,靜態字段 st...