2009-04-26 42 views
1

在原子属性Objective-C中(在桌面上还是在iPhone平台上),与默认的原子属性相反,是否有一个很好的经验法则?我明白其中的差异 - 原子性以牺牲性能为代价来保证整个价值 - 但我看到的大多数例子都使用非原子性质(并且不是不稳定的),所以显然需要原子性的情况以及不存在的情况。@property原子性的经验法则?

任何人都可以提供一个简单的指导方针,当我应该使用原子属性,当我应该青睐nonatomic的?

回答

1

只要可能,您应该倾向于使用nonatomic。一般来说,这意味着只能通过单个线程属性来设置/访问属性,这些属性的访问受某些类型的更高级同步保护。请注意0​​属性访问不保证线程安全。换句话说,依赖于atomic属性值的算法本身必须是线程安全的,以便整个系统是线程安全的。考虑到这一点,通常可以在保持系统线程安全的同时使属性nonatomic

相关问题