可以将字符串用作锁定对象吗?

可以将字符串用作锁定对象吗?,第1张

可以将字符串用作锁定对象吗?

不鼓励锁定字符串,主要原因是(由于字符串绑定)某些其他代码可能会在您不知道的情况下锁定相同的字符串实例。可能导致死锁情况。

现在,在大多数具体情况下,这可能是一个牵强附会的方案。这是图书馆的一般规则。

但是,另一方面,字符串的好处是什么呢?

因此,一点一点:

这种方法有什么问题吗?

是的,但主要是理论上的。

以这种方式锁定字符串对象是否可以,并且在使用HashSet时是否存在线程安全问题?

HashSet<>
只要线程唯一同时读取不参与线程安全的。

例如,创建一个为每个字符串实例创建一个新的锁定对象的Dictionary更好吗?

是。只是为了安全起见。在大型系统中,避免死锁的主要目的是将锁对象尽可能地保持本地和私有。只有有限数量的代码才能访问它们。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5499055.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-12
下一篇 2022-12-12

发表评论

登录后才能评论

评论列表(0条)

保存