1.概述
功能:为多个线程共享的变量提供原子操作。
函数 | 说明 |
Increment | CompareExchange(ref a, b, c) |
Decrement | 递减指定变量的值并存储结果。 |
Add | 添加两个整数并用两者的和替换第一个整数 |
CompareExchange(ref a, b, c) | 原子操作,a参数和c参数比较, 相等b替换a,不相等不替换。 |
2.代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
namespace ConsoleApp5
{
class Program
{
public static int num = 0;
static void Main(string[] args)
{
ParallelLoopResult result = Parallel.For(0, 100, fun);
Console.WriteLine(result.IsCompleted);
Console.WriteLine(num);
Console.ReadKey();
}
static void fun(int a) {
for (int i = 0; i < 100; i++) {
Thread.Sleep(1000);
//num++;
Interlocked.Increment(ref num);
}
}
}
}
3.运行结果
4.未加 Interlocked前的结果