public static class Sample2
{
//互斥锁和自旋锁不同的是 互斥锁获取锁失败后,会等待,而不是重新尝试获取.因为等待所以不会消耗资源。
//线程从等待到唤醒状态到调度运行需要花费一定的时间
// Mutex 互斥锁
private static readonly Mutex mutex = new Mutex();
public static void test()
{
// mutex.WaitOne(1000);
// mutex.ReleaseMutex();
}
//混合锁 适合大部分场景
// Moniter 等同于 lock
private static object locker =new object();
public static void test1()
{
Monitor.Enter(locker);
Monitor.Exit(locker);
}
}