2

如果我有多个线程可能想要同时写入NSMutableDictionary(ie setObject:forKey:),即使我可以保证线程将写入不同的键值对,我是否需要在字典上同步?如果是,你能解释一下字典是怎么破的吗?

4

1 回答 1

4

NSMutableDictionary不是线程安全的,因此您需要围绕并发写入以及可能与写入同时进行的读取添加同步。您正在写入不同键的事实并没有多大帮助:实现可能会在添加新键时调整大小,从而使之前分配的所有内部存储无效。

如果您计划写入的所有键都已经存在于字典中,并且没有同时进行删除,那么您可能会很幸运。但是,我强烈建议不要使用这种方法。

于 2013-02-20T01:06:40.533 回答