美文网首页
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开发中的各种锁机制

    ios开发中的各种锁机制

  • iOS中的锁

    锁是一种同步机制,用于多线程环境中对资源访问的限制iOS中常见锁的性能对比图(摘自:ibireme): iOS锁的...

  • iOS多线程之同步、依赖

    iOS常见的保持数据同步机制: os_unfair_lock 用来代替OSSpinLock自旋锁 OSSpinLo...

  • iOS锁系列-目录

    1、 iOS锁系列-NSLock对象锁2、iOS锁系列-NSConditionLock条件锁3、iOS锁系列-NS...

  • iOS开发 - NSLock与线程

    最近买了一个单车锁,敲着敲着代码,突然灵光一闪!! 想起了 iOS中的锁机制!! (天呐。。什么鬼?)平常在项目中...

  • (转载) iOS 各种锁机制

    (转载) iOS 各种锁机制 一、前言 前段时间看了几个开源项目,发现他们保持线程同步的方式各不相同,有@syn...

  • 013-iOS锁机制

    锁的类别 NSLockingNSLockNSConditionLock 条件锁NSRecursiveLock 递归...

  • iOS中的锁机制

    本文主要讨论OC中各种锁的使用。首先,创建一个用来测试的类。假设这个测试类是共享的资源,然后method1和met...

  • 数据库为什么需要锁机制?有哪些锁机制?

    数据库为什么需要锁机制?有哪些锁机制?

  • iOS开发中常用的几种锁

    iOS开发中常用的几种锁 简介: 操作系统在进行多线程调度的时候,为了保证多线程安全引入了锁的机制,以实现指定代码...

网友评论

      本文标题:iOS锁机制

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