在Objective-C (在桌面或iPhone平台上)中何时应该使用非原子属性,而不是默认的原子属性,是否有一个很好的经验法则?我理解- atomicity以牺牲性能为代价来保证整个值的区别--但我看到的大多数示例都使用非原子属性(并且不是不稳定的),因此显然存在需要原子性的情况和不需要原子性的情况。
有没有人能给我一个简单的指导,告诉我什么时候应该使用原子属性,什么时候应该偏爱非原子属性?
发布于 2009-04-26 20:15:26
只要有可能,您就应该偏爱nonatomic。通常,这意味着只能从单个线程设置/访问的属性,或者其访问受某种更高级别的同步保护的属性。需要注意的是,atomic属性访问并不能保证线程安全。换句话说,依赖于atomic属性值的算法本身必须是线程安全的,这样整个系统才是线程安全的。考虑到这一点,通常可以将属性设为nonatomic,同时维护系统的线程安全。
https://stackoverflow.com/questions/791509
复制相似问题