在编程中,原子操作是指不可分割的操作,要么完全执行,要么完全不执行。C# 提供了一些原子操作的机制,以方便开发人员在多线程环境中正确处理共享数据。本文将介绍 C# 中的原子操作,并给出相应的源代码和描述。
- Interlocked 类
C# 的 System.Threading 命名空间提供了一个 Interlocked 类,其中包含了一些原子操作的静态方法。这些方法可以确保在多线程环境下对共享数据的操作是原子的。
例子 1: Interlocked.Increment 和 Interlocked.Decrement
using System;
using System.Threading;
class Program
{
static int count = 0;
static void Main(string[] args)
{
Thread t1 = new Thread(Increment);
Thread t2 = new Thread(Decrement);
t1.Start();
t2.Start();
t1.Join();
t2.Join();
Console.WriteLine("Count: " + count);
}
static void Increment()
{
for (int