多线程-锁性能

性能从高到低

  • os_unfair_lock
  • OS_SPinLock
  • dispatch_semaphore
  • pthread_mutex
  • dispatch_serial_queue
  • NSLock
  • NSCondition
  • pthread_mutex(recursive)
  • NSRecuresiveLock
  • NSConditionLock
  • @synchronized

互斥锁、自旋锁比较

  • 自旋锁

1>预计等待锁的时间较短;
2>加锁的代码(临界区)经常被调用,但竞争情况很少发生;
3> CPU资源不紧张;
4> 多核处理器

  • 互斥锁

1> 预计等待锁的线程较长;
2> 单核处理器;
3> 临界区有IO操作;
4> 临界区代码复杂或循环量大,竞争非常激烈 ;

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容