首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NSMutableString线程安全?

NSMutableString线程安全?
EN

Stack Overflow用户
提问于 2013-05-04 08:19:06
回答 1查看 471关注 0票数 2

我有一个很大的NSMutableString (可能有几百兆字节),需要对它执行大量的rangeOfCharacterFromSet:操作。

为了提高性能,我希望让NSOperationQueue将字符串拆分成大约100kb的块,并异步处理每个块。

但是因为字符串太大,所以为每个线程制作不可变的副本是不可行的。

假设我不允许修改字符串(我打算阻塞主线程,直到操作队列完成),这安全吗?

苹果文档中的NSString是线程安全的,所有不可变对象都是“一般”不是线程安全的,但它大概只适用于某些方法?rangeOfCharacterFromSet是我唯一使用的。

这段代码可以在OS X和iOS上运行(在iOS上通常使用较小的字符串)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-04 08:38:17

虽然我怀疑NSMutableString (或至少其常见实现)对此是安全的,但最安全的答案可能是创建一个不可变的副本,然后针对该副本执行所有操作。

我的警告是,非常大的NSMutableStrings可能在内部实现为树,如果该树在读取时执行延迟重新平衡,则可能存在线程安全问题。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16369329

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档