gpt4 book ai didi

c# - 公开可见的锁对象 : Sometimes useful or indication for design flaw?

转载 作者:行者123 更新时间:2023-11-30 22:42:43 25 4
gpt4 key购买 nike

我正在监控管理一些低级网络通信的软件组件的分包供应。查看此组件我发现了这一点:

public static object SyncRoot { get { return syncRoot; } }

在这个非常重要的类中,几乎所有方法在做事时都使用这个锁对象。现在我想知道这是实现这种瓶颈的好决定还是毕竟是一个严重的设计缺陷。这不是某种奇怪的多线程程序方式吗?

除了可能死锁的问题是加锁快吗?管理所有这些并发线程的监控工作量有多高?实现类似同步暂停/恢复方法的东西来让这个类从外部停止/开始工作不是更好吗(如果有必要)?在什么情况下公开可见的锁定对象有用?有吗?

最佳答案

MS框架中使用了Public SyncRoot,没错,但那是一个实例属性,不是静态属性。您没有提供有关示例中 (Static) SyncRoot 属性返回的 syncRoot 对象的范围或可访问性的任何详细信息。文档 (http://msdn.microsoft.com/en-us/library/ms173179.aspx) 警告不要锁定公共(public)类型或“超出应用程序控制范围”的对象。在 http://www.albahari.com/threading/ 上对多线程有很好的讨论。 .

关于c# - 公开可见的锁对象 : Sometimes useful or indication for design flaw?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4276678/

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