Interlocked
類在 C# 中提供了一種原子操作的方式來保證數據的一致性。原子操作是指在多線程環境下,不會被其他線程中斷的操作。這意味著在執行過程中,其他線程無法訪問或修改該數據,從而確保了數據的一致性。
Interlocked
類提供了一系列靜態方法,如 Add
、CompareExchange
、Decrement
、Increment
等,這些方法都是原子操作。它們可以用于處理簡單的數據類型(如 int
、long
、float
、double
等)和引用類型(如 ref int
、ref object
等)。
以下是一些使用 Interlocked
類的示例:
int counter = 0;
// 原子遞增
Interlocked.Increment(ref counter);
// 原子遞減
Interlocked.Decrement(ref counter);
int oldValue = 0;
int newValue = 1;
// 原子比較并交換,如果 oldValue 等于 expectedValue,則將其設置為 newValue
bool result = Interlocked.CompareExchange(ref oldValue, newValue, expectedValue);
int a = 5;
int b = 3;
int sum;
// 原子加法
sum = Interlocked.Add(ref a, b);
通過使用 Interlocked
類的方法,您可以確保在多線程環境下對共享數據的操作是原子的,從而避免了數據不一致的問題。