7 properties atomic objective-c synchronized race-condition
如果我使用
@property (atomic,assign) int value;
Run Code Online (Sandbox Code Playgroud)
然后像这样访问它
self.value--;
Run Code Online (Sandbox Code Playgroud)
那是原子的减量吗?因为如果我必须这样做:
self.value = self.value - 1;
Run Code Online (Sandbox Code Playgroud)
那么我确信在读和写之间可能存在竞争条件.
我的直觉当然是这样做
@synchronized(self) { value--; }
Run Code Online (Sandbox Code Playgroud)
但我被告知这不是犹太人.
谢谢.
Bri*_*ker 14
尝试使用Apple的本文所述的OSAtomicIncrement和OSAtomicDecrement .
self.value = self.value - 1;
Run Code Online (Sandbox Code Playgroud)
无论属性如何定义,都不会是原子的.