readonly属性和标量所需的原子?

时间:2015-03-29 08:11:10

标签: objective-c

我知道有很多讨论,其中一个是https://stackoverflow.com/a/12969166/1724763,但答案不是很明确。

我只想关注其他地方没有找到的原子的特定用例(在ARC的背景下)

例如,我有:

@property (nonatomic, strong) someobject;

在这种情况下,someobject在init中写入一次,之后由多个线程读取。 我必须制作atomic吗?吸气剂究竟做了什么?只是返回指针?

对于标量和非客观c对象,我可以将它们nonatomic用于多线程读写吗?我知道在Intel处理器上读取和写入对齐的int总是原子的。

另外,在访问原子属性时,我应该先分配一个局部变量并使用局部变量来提高性能吗?

1 个答案:

答案 0 :(得分:2)

在这种情况下,

nonatomic是安全的(其中此案例是整个应用程序会话中静态的对象。)

甚至无需进行retain / autorelease舞蹈。

对于所有意图和目的,这与典型的sharedInstance方法的行为相同。具体来说,readonly值是以线程安全,排他性的方式计算的,一旦计算,值永远不会改变

就性能而言?在确定可量化且可重复的真实世界性能问题之前,没有理由分配局部变量。