Задача C: Атомарный декремент целого числа без @synchronized?

Если я использую

@property (atomic,assign) int value;

и позже получаю к нему доступ так

self.value--;

, является ли это атомарным декрементом? Потому что, если бы мне пришлось сделать это:

self.value = self.value - 1;

, то я уверен, что была бы вероятность состояния гонки между чтением и записью.

Мой инстинкт, конечно, состоит в том, чтобы просто сделать это

@synchronized(self) { value--; }

, но мне говорят, что это не кошерно.

Спасибо.

7
задан 11 June 2012 в 21:18
поделиться