我有一個大的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