Coc*_*ics 3 iphone objective-c ios
我有一个可以同时从多个后台线程访问的类.我无法复制该类,因为它的内容可能很难重新创建(处理或内存).
在后台处理仍在进行并访问此属性时,也可能替换此类的属性.
目前我有定期保留/释放,但似乎是这种情况(至少在iOS 4上),这些都不是线程安全的,因为即使它们是完美配对,显然会发生retainCount随机丢弃并最终这个类被取消分配.
我正在寻找关于如何使这个类线程安全,允许并行访问属性和允许修改属性的建议,同时属性的"早期版本"仍由其中一个后台操作保留.
保留和释放是原子的.自动释放不是.考虑保留为每线程; 如果线程A持有retain(或retain/autorelease),则线程A的引用将有效,直到该retain保持平衡(或者自动释放池被耗尽).
Autorelease 永远不能用作跨线程所有权转移原语.
除此之外,很难说没有更多代码的应用程序出现了什么问题.