Interlocked operations in iOS?

前端 未结 4 719
感动是毒
感动是毒 2021-01-04 08:11

Are there interlocked(atomic) operations in iOS SDK?

I need interlocked increment\\decrement and interlocked comparsion.

*UPDATE: * My main proble

相关标签:
4条回答
  • 2021-01-04 08:41

    Update: Language level atomics under C11 and C++11 are now available.

    You can simply declare _Atomic(int) a;.

    A more detailed introduction.


    atomic operations and their documentation can be found in libkern/OSAtomic.h. an overview can be found under man atomic.

    as well, you will likely find C11 and C++11 language/library support very soon.

    0 讨论(0)
  • 2021-01-04 08:48

    Objective-C has the keyword synchronized for atomic operations.

    @synchronized(object) {
        // ...
    }
    

    If you specify the attribute atomic in a property declaration, the setters and getters will be sythesized using these synchronized-blocks.

    Also look at NSLock and NSLocking protocol.

    0 讨论(0)
  • 2021-01-04 08:49

    You can use the OSAtomicIncrement*/OSAtomicDecrement* operations described in Using Atomic Operations.

    0 讨论(0)
  • You can take a look at the properties (ObjectiveC 2.0 feature).

    @property int atomicProperty;

    There is in fact no 'atomic' specifier, as properties default to atomic. They can be set to 'nonatomic'.

    http://developer.apple.com/library/ios/#documentation/Cocoa/Conceptual/ObjectiveC/Articles/ocProperties.html

    You may be interested by @synchronized also. Or this part of the doc:

    http://developer.apple.com/library/ios/#documentation/Cocoa/Conceptual/Multithreading/ThreadSafety/ThreadSafety.html

    0 讨论(0)
提交回复
热议问题