可可非原子性质

时间:2010-06-02 18:12:30

标签: objective-c cocoa properties atomicity

当您查看某些Objective-C代码时,您经常会看到将类属性定义为非原子的。为什么?当你不使用线程时,它是否会给你一些性能提升,还是有其他原因?

1 个答案:

答案 0 :(得分:5)

nonatomic访问者更快,因为他们不必锁定。这就是它的全部内容。来自documentation

  

如果您未指定 nonatomic ,则在引用计数环境中,对象属性的合成get访问器使用锁并保留并自动释放返回的值 - 实现将是类似于以下内容:

[_internal lock]; // lock using an object-level lock
id result = [[value retain] autorelease];
[_internal unlock];
return result;
     

如果指定 nonatomic ,则对象属性的合成访问器只会直接返回该值。