如果我有多个线程可能想要同时写入NSMutableDictionary
(即setObject:forKey:
),我是否需要在字典上同步,即使我可以保证线程将写入不同的密钥值对?如果是的话,你能解释一下字典是如何破解的吗?
答案 0 :(得分:4)
NSMutableDictionary
is not thread-safe,因此您需要在并发写入周围添加同步,以及可能与写入同时进行的读取。您写入不同密钥的事实没有多大帮助:实现可能会在添加新密钥时调整大小,使之前分配的所有内部存储无效。
如果您计划写入的所有密钥已经存在于字典中,并且没有进行并发删除,那么您可能会很幸运。但是,我强烈建议不要采用这种方法。