目标C:没有@synchronized的整数的原子递减?

时间:2012-06-11 21:18:54

标签: objective-c properties atomic race-condition synchronized

如果我使用

@property (atomic,assign) int value;

以后再访问它

self.value--;

是原子减量吗?因为如果我必须这样做:

self.value = self.value - 1;

然后我确信在读和写之间可能存在竞争条件。

我的直觉当然就是这样做

@synchronized(self) { value--; }

但我被告知这不是犹太人。

感谢。

1 个答案:

答案 0 :(得分:13)

按照this article from Apple中的说明尝试OSAtomicIncrement和OSAtomicDecrement。

self.value = self.value - 1;          
无论属性如何定义,

都不是原子的。