不鼓励锁定字符串,主要原因是(由于字符串绑定)某些其他代码可能会在您不知道的情况下锁定相同的字符串实例。可能导致死锁情况。
现在,在大多数具体情况下,这可能是一个牵强附会的方案。这是图书馆的一般规则。
但是,另一方面,字符串的好处是什么呢?
因此,一点一点:
这种方法有什么问题吗?
是的,但主要是理论上的。
以这种方式锁定字符串对象是否可以,并且在使用HashSet时是否存在线程安全问题?
在
HashSet<>只要线程唯一同时读取不参与线程安全的。
例如,创建一个为每个字符串实例创建一个新的锁定对象的Dictionary更好吗?
是。只是为了安全起见。在大型系统中,避免死锁的主要目的是将锁对象尽可能地保持本地和私有。只有有限数量的代码才能访问它们。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)