如果我使用
@property (atomic,assign) int value;
然后像这样访问它
self.value--;
那减量是原子的吗?因为如果我必须这样做:
self.value = self.value - 1;
那么我确信在读取和写入之间会有竞争条件的机会。
我的直觉当然是这样做
@synchronized(self) { value--; }
但有人告诉我这不是犹太洁食。
谢谢。
如果我使用
@property (atomic,assign) int value;
然后像这样访问它
self.value--;
那减量是原子的吗?因为如果我必须这样做:
self.value = self.value - 1;
那么我确信在读取和写入之间会有竞争条件的机会。
我的直觉当然是这样做
@synchronized(self) { value--; }
但有人告诉我这不是犹太洁食。
谢谢。
按照Apple 的这篇文章中的描述尝试 OSAtomicIncrement 和 OSAtomicDecrement 。
self.value = self.value - 1;
无论属性如何定义,都不会是原子的。