我有一个大的NSMutableString(潜在的数百兆字节),需要对它执行很多rangeOfCharacterFromSet:操作。NSMutableString线程安全?
为了提高性能,我希望有一个NSOperationQueue将字符串拆分成〜100kb的块并异步处理每个块。
但是由于字符串太大,为每个线程制作不可变副本是不可行的。
假设我不允许修改字符串(我打算阻塞主线程直到操作队列完成),这是否安全?
Apple文档NSString作为线程安全和所有不可变的对象“一般”不是线程安全的,但大概它只适用于某些方法? rangeOfCharacterFromSet是我正在使用的唯一一个。
此代码将在两个OS X在iOS(通常在iOS较小的字符串)
为什么每个线程都有独立的“副本”原始NSString?如果字符串不允许被修改,为什么还要使用NSMutableString? – user2246674 2013-05-04 00:29:25
为什么要阻止主线程?如果你打算这么做,线程的目的是什么? – matt 2013-05-04 00:30:10
我还有一个问题:你真的*测试*性能,还是只是猜测?你知道吗*有一个性能问题需要分割字符串? – matt 2013-05-04 00:32:39