美文网首页
iOS锁机制

iOS锁机制

作者: 麦田的守望者Sunshine | 来源:发表于2023-10-01 23:28 被阅读0次

    atomic(原子锁)

    atomic适用于OC中属性的修饰符,其自带一把自旋锁,但是这个一般基本不使用,都是使用的nonatomic;setter方法会根据修饰符调用不同方法,其中最后会统一调用reallySetProperty方法,其中就有atomic和非atomic的操作

    static inline void reallySetProperty(id self, SEL _cmd, id newValue, ptrdiff_t offset, bool atomic, bool copy, bool mutableCopy) {

    ...

    id *slot = (id*) ((char*)self + offset);

    ...

    if (!atomic) {

    //未加锁

    oldValue = *slot;

    *slot = newValue;

    } else {

    //加锁

    spinlock_t& slotlock = PropertyLocks[slot];

    slotlock.lock();

    oldValue = *slot;

    *slot = newValue;

    slotlock.unlock();

    }

    ...

    }

    相关文章

      网友评论

          本文标题:iOS锁机制

          本文链接:https://www.haomeiwen.com/subject/vjqsbdtx.html