OC中的八大锁 🔐 (线程同步)

2020-06-26  本文已影响0人  三国韩信
  1. OSSpinLock 自旋锁 不安全 优先级翻转的问题

  2. os_unfair_lock 拿不到锁的时候休眠,各方面比OSSpinLock好一些 ,性能最好(iOS10以上才支持)

  3. pthread_mutex_lock 可以设置默认锁或递归锁

  4. NSLock 对pthread_mutex_lock 默认锁的情况的封装,封装成一个OC对象来调用

  5. NSRecursiveLock 对pthread_mutex_lock 递归锁的情况的封装,封装成一个OC对象来调用

  6. NSCondition & NSConditionLock 条件锁(满足某个条件下加锁解锁)

  7. @synchronized 底层是对pthread_mutex_lock封装并用哈希表来存锁。性能最差的。

  8. pthread_rwlock_t 读写锁 可以同时多个线程读操作,只能一个线程写操作

推荐使用pthread_mutex_lock。

上一篇 下一篇

猜你喜欢

热点阅读