gpt4 book ai didi

iphone - 线程安全的保留/释放

转载 作者:可可西里 更新时间:2023-11-01 17:11:11 29 4
gpt4 key购买 nike

我有一个可以从多个后台线程访问的类,可能同时访问。我无法复制该类,因为重新创建它的内容(处理或内存方面)可能很昂贵。

也有可能在后台处理仍在继续并访问该属性时替换了此类的属性。

目前我有定期的保留/释放,但似乎(至少在 iOS 4 上)这些不是线程安全的,因为即使它们是完美的配对,但显然会发生 retainCount 随机下降,最终这类被释放。

我正在寻找有关如何使此类线程安全、允许并发访问属性以及允许修改属性的建议,同时该属性的“早期版本”仍由后台之一持有 Action 。

最佳答案

保留和释放是原子的。自动释放不是。将保留视为每个线程;如果线程 A 持有保留(或保留/自动释放),则线程 A 的引用将有效,直到该保留被平衡(或自动释放池被耗尽)。

Autorelease 不能永远用作跨线程所有权转移原语。

除此之外,如果没有更多代码,很难说出您的应用中出了什么问题。

关于iphone - 线程安全的保留/释放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6512540/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com