- 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);
- }
- }
来源: http://www.bubuko.com/infodetail-3651676.html