美文网首页
线程同步方案对比

线程同步方案对比

作者: xxttw | 来源:发表于2023-06-15 11:07 被阅读0次
性能从高到低排序
  • os_unfair_lock
  • OSSpinLock 已不推荐使用
  • pthread_mutex_t
  • dispatch_semaphore_t
  • NSLock
  • NSCondition
  • pthread_mutex_t(recursive)
  • NSRecursiceLock
  • NSConditonLock
  • @synchroized

实际项目使用频次较高的是dispatch_semaphore_t, NSlock
追求效率更高的库一般会使用pthread_mutex_t, dispatch_semaphore_t

自旋锁和互斥锁对比
  • 什么情况下使用自旋锁比较划算
  • 自旋锁就是不会睡觉, 不会休眠, 一直在处于忙等的状态, 一直占用着cpu资源

预计线程等待锁的时间很短
加锁的代码(临界区)经常被调用, 而且竞争情况下很少发生
cpu资源不紧张的情况下
多核处理器

  • 什么情况下使用互斥锁比较划算
  • 互斥锁会进入休眠等待状态, 节省cpu资源, 当锁被释放时,才会被系统唤醒

预计线程等待锁的时间较长
临界区代码复杂逻辑复杂,循环量大,占用资源较大
临界区有IO等比较耗时的操作
临界区代码竞争非常激烈, 经常有多个线程会来抢占代码
单核处理器

相关文章

  • iOS多线程(四)

    多线程安全隐患解决方案 1.解决方案:使用线程同步技术(协同步调,按预定的先后次序进行) 2.常用的线程同步技术:...

  • 细数iOS中的线程同步方案(一)

    细数iOS中的线程同步方案(一)细数iOS中的线程同步方案(二) 多线程安全问题 多个线程可能访问同一块资源,比如...

  • 细数iOS中的线程同步方案(二)

    细数iOS中的线程同步方案(一)细数iOS中的线程同步方案(二) NSLock 这个其实就是对pthread_mu...

  • 线程安全

    本文主要内容 线程安全概念 互斥同步 非阻塞同步 无同步方案 线程安全概念 当多个线程访问一个对象时,如果不用考虑...

  • 程序多线程运行下怎样保证线程安全

    保证线程安全以是否需要同步手段分类,分为同步方案和无需同步方案。 1.互斥同步 互斥同步是最常见的一种并发正确...

  • 三十九、多线程之(三)线程安全--锁(OSSpinLock、os

    iOS中线程同步方案 OSSpinLockos_unfair_lockpthread_mutexdispatch_...

  • java 线程安全问题的解决办法 和死锁

    线程安全问题的解决办法 线程 安全问题的解决方案:sun提供了线程同步机制让我们解决这类问题的。 java线程同步...

  • 1.15 - 关于AB Test最初的认识

    1、对比项的确定; 2、对比方案之间非对比项之间的同步绑定; 3、对比结果和整体结果的显示;

  • iOS_多线程_基本概念

    iOS多线程方案 同步、异步、并发、串行同步:在当前线程中执行任务,不具备开启新线程的能力。注意:需要立马在当前线...

  • OC语法_多线程

    1. 多线程实现原理; 2. 多线程实现的方案; 3. 线程同步技术; 1. 多线程实现原理; - 进程:...

网友评论

      本文标题:线程同步方案对比

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