gpt4 book ai didi

.net - 监视器应该等待什么对象?

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

使用 Monitor.Wait(object obj) 时,应该对 obj 使用什么?在此article我正在阅读 .NET 中的多线程,作者实例化了一个新的 Object() 仅用作监视器锁。这是您在实践中应该做的,还是监视两个或多个线程之间共享的实际变量更典型?

最佳答案

是的,我通常会锁定专门为此目的创建的新对象。我还确保它是私有(private)的和静态的,并且不是类型对象。同样重要的是要认识到,您并不是真正“锁定”变量或对象,而是将锁用作阻止在多个线程上执行代码块的 token 。

锁定 this(如果您使用的是 C#,则为当前实例)不太受欢迎,因为任何有权访问该实例的代码都可能对其进行锁定,从而增加死锁的可能性。通过创建自己的锁对象,您可以完全控制自己。

Here's an informative article关于锁定解释了其中一些背后的原因。

关于.net - 监视器应该等待什么对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2186616/

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