为什么要用Mutex来锁定

本文关键字:锁定 Mutex 为什么 | 更新日期: 2023-09-27 18:00:23

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

public class Job
{
    private static Mutex mutex = new Mutex();
    public void Execute(Context context)
    {
        lock (mutex)
        {
            // some work here
        }
        // some more work here
    }
}

为什么要用Mutex来锁定

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

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

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

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