代码之家  ›  专栏  ›  技术社区  ›  miguel

为什么锁定(objlock)比锁定(this)【复制】

  •  8
  • miguel  · 技术社区  · 17 年前

    可能重复:
    Why is lock(this) {...} bad?


    在C中,通常使用lock(objlock),其中objlock是为锁定而创建的对象。

    为什么这个比锁好(这个)?除了对类本身进行锁外,锁(this)的负面影响是什么?

    2 回复  |  直到 17 年前
        1
  •  15
  •   Winston Smith    17 年前

    因为其他东西可能会锁定实例,所以您将出现死锁。

    如果您锁定了专门为此目的而创建的对象,那么您就知道自己处于完全控制状态,并且没有其他任何东西会意外地锁定它。

        2
  •  2
  •   Steve Cooper    17 年前

    如果锁定任何公共的东西,那么类和其他类都可以尝试获取一个锁。创建一个同步对象非常容易,而且总是首选的;

    private syncLock = new Object();