Objective c @property原子性的经验法则?
在Objective-C(桌面或iPhone平台上)中何时应该使用非原子属性,而不是默认的原子属性,是否有一个好的经验法则?我理解其中的区别——原子性以牺牲性能为代价保证整个值——但我看到的大多数示例都使用非原子属性(并且不稳定),因此显然存在需要原子性的情况和不需要原子性的情况Objective c @property原子性的经验法则?,objective-c,Objective C,在Objective-C(桌面或iPhone平台上)中何时应该使用非原子属性,而不是默认的原子属性,是否有一个好的经验法则?我理解其中的区别——原子性以牺牲性能为代价保证整个值——但我看到的大多数示例都使用非原子属性(并且不稳定),因此显然存在需要原子性的情况和不需要原子性的情况 有谁能给我一个简单的指南,告诉我什么时候应该使用原子属性,什么时候应该使用非原子属性?只要有可能,你应该选择非原子属性。通常,这意味着只能从单个线程设置/访问的属性,或者其访问受到某种高级同步保护的属性。需要注意的是,
有谁能给我一个简单的指南,告诉我什么时候应该使用原子属性,什么时候应该使用非原子属性?只要有可能,你应该选择
非原子属性。通常,这意味着只能从单个线程设置/访问的属性,或者其访问受到某种高级同步保护的属性。需要注意的是,原子的
属性访问不能保证线程安全。换句话说,依赖于原子属性的值的算法本身必须是线程安全的,这样整个系统才能是线程安全的。考虑到这一点,在维护系统线程安全的同时,通常可以使属性非原子。您应该尽可能支持非原子
。通常,这意味着只能从单个线程设置/访问的属性,或者其访问受到某种高级同步保护的属性。需要注意的是,原子的
属性访问不能保证线程安全。换句话说,依赖于原子属性的值的算法本身必须是线程安全的,这样整个系统才能是线程安全的。考虑到这一点,在维护系统线程安全的同时,通常可以使属性非原子