c#之線程同步--輕量級同步 Interlocked

輕量級同步 Interlock

爲何說它是輕量級呢?由於它僅對整形數據(即int類型,long也行)進行同步。spa

若是你學過操做系統裏面的PV操做(即信號量),那麼你對它已經瞭解了通常。它實現的正是如同信號量的功能。下面是它提供的方法:操作系統

Interlocked.Increment(ref value) 數值加一(原子性操做)
Interlocked.Decrement(ref value) 數值減一(原子性操做)
Interlocked.Exchange(ref value1, value2) 交換:把值2賦給值1;返回新值
Interlocked.CompareExchange(ref value1, value2, value3) 實現比較和交換兩種功能:值1和值3比較,若是相同,把值2給值1,不相同則不做任何操做;返回原值(多用於判斷條件)(示例3中會用到)
相關文章
相關標籤/搜索