Dot-Net
靜態類是執行緒安全的嗎
我瀏覽過 msdn,上面寫著所有靜態類都是執行緒安全的。好吧,那篇文章是針對 1.1 版的…
<http://msdn.microsoft.com/en-us/library/d11h6832(v=vs.71).aspx>
.NET Framework 中的所有公共靜態成員(方法、屬性、欄位和事件)都支持多執行緒環境中的並發訪問。因此,可以從兩個執行緒同時呼叫任何 .NET Framework 靜態成員,而不會遇到爭用條件、死鎖或崩潰。
不,它並不是說靜態類是執行緒安全的,而是說公共靜態成員是執行緒安全的。
例如,對於靜態方法,這意味著它們只使用您作為參數發送的數據,或其他也是執行緒安全的靜態成員。
您不必同步對靜態方法的呼叫,除非需要保護您發送到方法中的數據。
這說明**.NET 框架**中的所有靜態成員都是以執行緒安全的方式設計的。這意味著 Microsoft 為 .NET Framework 開發的所有靜態方法/欄位/屬性。如果您想使用 .NET Framework 本身提供的靜態成員,那麼您可以假設它是執行緒安全的並照此使用。儘管如此,我仍然會懷疑該聲明的有效性,並假設非執行緒安全,除非另有證明。
您自己編寫(靜態或非靜態)並具有靜態成員的任何類可能是執行緒安全的,也可能不是執行緒安全的,具體取決於您編寫它們的方式。它不會因為它是一個靜態方法/類而神奇地是執行緒安全的。
還要看看這個以了解什麼是靜態成員以及什麼是靜態類: