8

私が使用する場合

@property (atomic,assign) int value;

そして後でそのようにアクセスします

self.value--;

その減少はアトミックですか?私がこれをしなければならなかった場合:

self.value = self.value - 1;

その場合、読み取りと書き込みの間で競合状態が発生する可能性があると確信しています。

もちろん、私の本能はこれを行うことです

@synchronized(self) { value--; }

しかし、それはコーシャではないと言われています。

ありがとう。

4

1 に答える 1

14

Apple のこの記事で説明されているように、OSAtomicIncrement と OSAtomicDecrement を試してください。

self.value = self.value - 1;          

プロパティがどのように定義されているかに関係なく、アトミックではありません。

于 2012-06-11T22:20:01.773 に答える