gpt4 book ai didi

.net - 单个或多个锁定对象

转载 作者:行者123 更新时间:2023-12-01 10:59:52 25 4
gpt4 key购买 nike

我一直在研究嵌套和多重锁,但我还没有找到解决这个特定场景的地方。

class x
{
Method1()
{
Lock (object)
{
Method2();
}
}


Method2()
{
Lock (object)
{
//do stuff
}
}

}//close class x

锁对象可以相同还是必须不同?

一种方法比另一种方法有优势吗?

最佳答案

它们可以相同,因为lock (Monitor) 是reentrant在 .NET 中。

Monitor.Enter 的文档中提到了这一点:

It is legal for the same thread to invoke Enter more than once without it blocking; however, an equal number of Exit calls must be invoked before other threads waiting on the object will unblock.

由于同一个线程可以多次使用同一个对象进入锁,上面的代码可以共享同一个同步对象。

关于.net - 单个或多个锁定对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12096666/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com