iOS各种锁及线程使用

2024-03-10  本文已影响0人  星星杨

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

锁的分类

  • 自旋锁 busy-waiting(忙等状态):线程获取锁,发现锁被占用,不断进行锁请求,直到获取。等待锁的线程处于忙等状态线程并会占用cpu资源;
  • 互斥锁 sleep-waiting(休眠状态):线程获取锁,发现锁被占用,就向系统申请锁空闲时唤醒他并立刻休眠。等待锁的线程处于休眠状态,并不会占用cpu资源;互斥锁分为递归(可递归调用)、非递归;
  • 特殊锁读写锁;

pthread_rwlock读写锁

image.png

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

上一篇下一篇

猜你喜欢

热点阅读