c 中多執行緒修飾符volatile

2021-07-05 17:48:42 字數 729 閱讀 5931

volatile是c#中用於控制同步的關鍵字,其意義是針對程式中一些敏感資料,不允許多執行緒同時訪問,保證資料在任何訪問時刻,最多有乙個執行緒訪問,以保證資料的完整性,volatile是修飾變數的修飾符。

1、volatile的使用場景

多個執行緒同時訪問乙個變數,clr為了效率,允許每個執行緒進行本地快取,這就導致了變數的不一致性。volatile就是為了解決這個問題,volatile修飾的變數,不允許執行緒進行本地快取,每個執行緒的讀寫都是直接操作在共享記憶體上,這就保證了變數始終具有一致性。

2、volatile 關鍵字可應用於以下型別的字段

(1)、引用型別

(2)、整型,如 sbyte、byte、short、ushort、int、uint、char、float 和 bool。

(3)、具有整數基型別的列舉型別。

(4)、已知為引用型別的泛型型別引數。

(5)、不能將區域性變數宣告為 volatile。

恐怕比較一下volatile和synchronized的不同是最容易解釋清楚的。volatile是變 量修飾符,而synchronized則作用於一段**或方法;看如下三句get**:

int i1

;              int geti1

()volatile int i2

;  int geti2

()int i3

;              

synchronized int geti3()

C 修飾符 類修飾符和成員修飾符

c 修飾符之類修飾符 public internal partial abstract sealed static internal 本程式集內的成員可以訪問。partial 部分類,可以將乙個類分成幾部分寫在不同檔案中,最終編譯時將合併成乙個檔案,且各個部分不能分散在不同程式集中。c 修飾符之成員...

C 中的訪問修飾符 修飾符 類

版本visual studio 2010 主要參考 修飾符用於修改型別和型別成員的宣告 訪問修飾符 訪問級別 public 訪問不受限制 類內和任何類外中訪問 protected 可訪問域限定於類內或從該類派生的類內 類內和該類的派生類 internal 可訪問域限定於類所在的程式集內 該類所在程式...

學習C 修飾符 類修飾符和成員修飾符

c 修飾符之類修飾符 public internal partial abstract sealed static c 修飾符之成員修飾符 public protected private internal sealed abstract virtual override readonly cons...