美文网首页
OC线程安全二

OC线程安全二

作者: alfei13 | 来源:发表于2021-06-04 22:50 被阅读0次

一、自旋锁、互斥锁比较

  • 预计线程等待锁的时间很短

  • 加锁的代码(临界区)经常被调用,但竞争情况很少发生

  • CPU资源不紧张

  • 多核处理器

  • 什么情况使用互斥锁
    1. 预计线程等待锁的时间较长
    2. 单核处理器
    3. 临界区有IO操作
    4. 临界区代码复杂或者循环量大
    5. 临界区竞争非常激烈

  • 同一时间,只能有1个线程进行写的操作

  • 同一时间,允许有多个线程进行读的操作

  • 同一时间,不允许既有写的操作,又有读的操作

  • 此时用pthread_rwlock:读写锁 dispatch_barrier_async:异步栅栏调用

  • 这个函数传入的并发队列必须是自己通过dispatch_queue_cretate创建的
    如果传入的是一个串行或是一个全局的并发队列,那这个函数便等同于dispatch_async函数的效果

相关文章

网友评论

      本文标题:OC线程安全二

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