using System;
using System.Threading;
class Program
{
// 定义一个共享资源
private static int sharedResource = 0;
// 定义一个互斥锁对象
private static readonly object lockObject = new object();
static void Main(string[] args)
{
// 创建两个线程来访问共享资源
Thread thread1 = new Thread(IncrementSharedResource);
Thread thread2 = new Thread(IncrementSharedResource);
// 启动线程
thread1.Start();
thread2.Start();
// 等待线程结束
thread1.Join();
thread2.Join();
// 输出最终的共享资源值
Console.WriteLine("Final value of shared resource: " + sharedResource);
}
static void IncrementSharedResource()
{
for (int i = 0; i < 10000; i++)
{
// 使用lock关键字确保同一时间只有一个线程可以访问共享资源
lock (lockObject)
{
sharedResource++;
}
}
}
}
sharedResource 是一个静态整数变量,多个线程将同时对其进行递增操作。lockObject 是一个静态对象,用于在多个线程之间同步对共享资源的访问。thread1 和 thread2,它们都调用同一个方法 IncrementSharedResource 来递增共享资源。lock 关键字来确保在同一时刻只有一个线程可以执行 sharedResource++ 操作,从而避免竞态条件(race condition)。Join 方法确保主线程等待子线程完成后再继续执行。上一篇:c#实例
下一篇:c# 代码混淆
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站