美文网首页
iOS各种锁及线程使用

iOS各种锁及线程使用

作者: 星星杨 | 来源:发表于2024-03-10 16:19 被阅读0次

iOS中的八大锁解析与使用
iOS底层学习之八大锁的分析

锁的分类

  • 自旋锁 busy-waiting(忙等状态):线程获取锁,发现锁被占用,不断进行锁请求,直到获取。等待锁的线程处于忙等状态线程并会占用cpu资源;
  • 互斥锁 sleep-waiting(休眠状态):线程获取锁,发现锁被占用,就向系统申请锁空闲时唤醒他并立刻休眠。等待锁的线程处于休眠状态,并不会占用cpu资源;互斥锁分为递归(可递归调用)、非递归;
  • 特殊锁读写锁;
  • OSSpinLock -- 自旋锁 iOS10及以后弃用
  • os_unfair_lock -- 互斥锁 iOS10以后替代OSSpinLock使用
  • NSLock -- 互斥锁
  • NSCondition -- 互斥锁
  • NSConditionLock -- 互斥锁
  • dispatch_semaphore -- 互斥锁
  • pthread_mutex -- 互斥锁(可设置:递归)
  • NSRecursiveLock -- 递归锁
  • @synchronized -- 递归锁

pthread_rwlock读写锁

image.png

NSLock、NSCondition、NSConditionLock、NSRecursiveLock的底层实现都是基于pthread_mutex;

相关文章

  • 线程锁

    探讨iOS开发中各种锁使用NSCondition实现多线程同步 NSCondition是线程同步, 阻塞线程。 取...

  • OC--各种线程锁

    参考:正确使用多线程同步锁@synchronized()iOS中的锁iOS多线程安全详解iOS 常见知识点(三):...

  • iOS 多线程

    iOS中的各种锁iOS多线程到底不安全在哪里?

  • 线程同步

    1.dispatch_semaphore(信号量)的理解及使用2.iOS 多线程同步策略之-----锁NSLock...

  • iOS 多线程

    参考链接 iOS多线程iOS 多线程:『GCD』详尽总结iOS简单优雅的实现复杂情况下的串行需求(各种锁、GCD ...

  • 起底多线程同步锁(iOS)

    起底多线程同步锁(iOS) 起底多线程同步锁(iOS)

  • iOS锁

    常见锁代码 多线程场景不可避免需要使用锁来解决数据竞争、并发访问等问题,iOS 开发中,你会接触到各种各样的锁,不...

  • iOS线程同步(各种锁)

    线程安全 在iOS开发中经常会遇到一块资源被多个线程共享的情况,也就是多个线程会访问同一块资源,比如多个线程访问同...

  • iOS开发——常用的锁示例

    多线程场景不可避免需要使用锁来解决数据竞争、并发访问等问题,iOS 开发中,你会接触到各种各样的锁,不同的锁有不同...

  • iOS面试题<四>

    1.iOS线程并发需要注意什么? 2.iOS线程安全怎么处理 @synchronized 关键字构建的锁 :使用互...

网友评论

      本文标题:iOS各种锁及线程使用

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