美文网首页
2020-03-17 什么时候使用自旋锁?什么时候使用互斥锁?

2020-03-17 什么时候使用自旋锁?什么时候使用互斥锁?

作者: 跳跳跳跳跳跳跳 | 来源:发表于2020-03-17 20:47 被阅读0次

在回答上面的问题时,得先弄明白两个概念,什么是自旋锁,什么是互斥锁。

自旋锁

如果让等待锁的线程处于忙等状态,一直消耗cpu资源,这种锁就叫做自旋锁。

自旋锁的代表:OSSpinLock

互斥锁

如果让等待锁的线程进入休眠状态,这种锁就叫做互斥锁。

互斥锁的代表:pthread_mutex


什么时候使用自旋锁比较划算?

1.线程等待锁的时间短

2.加锁的代码(临界区)频繁被访问,竞争不激烈

3.cpu资源不紧张

4.多核处理器


什么时候使用互斥锁比较划算?

1.线程等待锁的时间较长

2.单核处理器

3.临界区有IO操作

4.临界区操作复杂或者有大量循环

5.临界区竞争非常激烈

相关文章

  • 2020-03-17 什么时候使用自旋锁?什么时候使用互斥锁?

    在回答上面的问题时,得先弄明白两个概念,什么是自旋锁,什么是互斥锁。 自旋锁 如果让等待锁的线程处于忙等状态,一直...

  • iOS面试题与核心基础之线程同步(锁,串行队列,信号量,@syn

    锁 iOS多线程锁有两类 自旋锁 和 互斥锁自旋锁与互斥锁比较类似,它们都是为了解决对某项资源的互斥使用。资源已...

  • iOS中使用到的加锁方案

    前言 iOS中使用到的锁有哪些? OSSpinLock自旋锁 os_unfair_lock互斥锁 pthread_...

  • iOS 锁

    同步锁 自旋锁 互斥锁

  • iOS底层探索-多线程锁

    多线程的锁大致可分为两大类:互斥锁、自旋锁;也可以分为三类:互斥锁、自旋锁、读写锁。 一、互斥锁:互斥+同步(强调...

  • 线程锁

    1.常见的锁包括:互斥锁,自旋锁。 2.互斥锁是指锁的类型,自旋锁是指锁的实现方式。 3.互斥锁:当上...

  • CLH并发队列

    1 什么是自旋锁和互斥锁? 由于CLH锁是一种自旋锁,那么我们先来看看自旋锁是什么? 自旋锁说白了也是一种互斥锁,...

  • mutex与spinlock的区别和应用场景

    这篇讲讲互斥锁(mutex)与自旋锁(spinlock)的差异,以及何种场景应该使用何种锁。mutex是最经常用到...

  • 多线程复习

    自旋锁 & 互斥锁 自旋锁:atomic、OSSpinLock、dispatch_semaphore_t临界区加锁...

  • iOS 开发中加锁

    [1].OSSpinLock 自旋锁 [1]自旋锁与互斥锁有点类似,只是自旋锁不会引起调用者睡眠,如果自旋锁已经被...

网友评论

      本文标题:2020-03-17 什么时候使用自旋锁?什么时候使用互斥锁?

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