c# wait 能与Mutex一起用吗
导读:是的,C#中的Wait方法可以与Mutex一起使用。Mutex(互斥体)是一种同步原语,用于确保多个线程在访问共享资源时不会发生冲突。Wait方法用于等待一个条件成立或者等待一段时间。 以下是一个使用Mutex和Wait方法的示例: usi...
是的,C#中的Wait
方法可以与Mutex
一起使用。Mutex
(互斥体)是一种同步原语,用于确保多个线程在访问共享资源时不会发生冲突。Wait
方法用于等待一个条件成立或者等待一段时间。
以下是一个使用Mutex
和Wait
方法的示例:
using System;
using System.Threading;
class Program
{
static Mutex mutex = new Mutex();
static int sharedResource = 0;
static void Main()
{
Thread thread1 = new Thread(Thread1);
Thread thread2 = new Thread(Thread2);
thread1.Start();
thread2.Start();
thread1.Join();
thread2.Join();
}
static void Thread1()
{
mutex.WaitOne();
// 等待互斥体被释放
for (int i = 0;
i <
100000;
i++)
{
sharedResource++;
}
Console.WriteLine("Thread 1 finished.");
mutex.ReleaseMutex();
// 释放互斥体
}
static void Thread2()
{
mutex.WaitOne();
// 等待互斥体被释放
for (int i = 0;
i <
100000;
i++)
{
sharedResource--;
}
Console.WriteLine("Thread 2 finished.");
mutex.ReleaseMutex();
// 释放互斥体
}
}
在这个示例中,我们创建了两个线程thread1
和thread2
,它们都会访问和修改共享资源sharedResource
。为了避免竞争条件,我们使用Mutex
来确保同一时间只有一个线程可以访问共享资源。mutex.WaitOne()
方法用于等待互斥体被释放,mutex.ReleaseMutex()
方法用于释放互斥体。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: c# wait 能与Mutex一起用吗
本文地址: https://pptw.com/jishu/709449.html