Posted on 2009-12-14 10:55
小天狼星 閱讀(128)
評論(0) 編輯 收藏 引用
MSDN Library中寫到:
volatile 關鍵字表示字段可能被多個并發(fā)執(zhí)行線程修改。聲明為 volatile 的字段不受編譯器優(yōu)化(假定由單個線程訪問)的限制。這樣可以確保該字段在任何時間呈現(xiàn)的都是最新的值。[從這里可以看出,如果使用了該修飾符,則應該是每次都從內(nèi)存中讀取的,對吧!]
volatile 修飾符通常用于由多個線程訪問而不使用 lock 語句(C# 參考)語句對訪問進行序列化的字段。有關在多線程方案中使用 volatile 的示例,請參見如何:創(chuàng)建和終止線程(C# 編程指南)。
volatile 關鍵字可應用于以下類型:
引用類型。
指針類型(在不安全的上下文中)。
整型,如 sbyte、byte、short、ushort、int、uint、char、float 和 bool。
具有整數(shù)基類型的枚舉類型。
已知為引用類型的泛型類型參數(shù)。
IntPtr 和 UIntPtr。
所涉及的類型必須是類或結(jié)構(gòu)的字段。不能將局部變量聲明為 volatile。