【问题标题】:Why use a Mutex to lock on?为什么要使用互斥锁来锁定?
【发布时间】:2015-06-30 05:15:13
【问题描述】:

为什么有人会使用新的互斥锁来锁定?

public class Job
{
    private static Mutex mutex = new Mutex();

    public void Execute(Context context)
    {
        lock (mutex)
        {
            // some work here
        }

        // some more work here
    }
}

【问题讨论】:

    标签: c# .net multithreading locking mutex


    【解决方案1】:

    如果这真的是说Mutex的唯一用途,那么它确实没有意义。一个普通的object 就足够了。

    【讨论】:

      【解决方案2】:

      为什么有人会使用新的互斥锁来锁定?

      可能是因为教程中有人说“Mutex”,他们确实想到了Mutex 对象。将其用作lock 没有任何好处或任何特殊效果。任何引用类型都有一个 Object Header Word,使其可以用作 lock 对象。

      附注 - 使用 static 对象锁定将导致您的 Job 类的任何实例在另一个实例持有该锁定时被阻止。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-02-28
        • 1970-01-01
        • 1970-01-01
        • 2010-11-18
        • 2018-02-15
        • 1970-01-01
        • 1970-01-01
        • 2012-03-12
        相关资源
        最近更新 更多