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

2020-03-17  本文已影响0人  跳跳跳跳跳跳跳

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

自旋锁

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

自旋锁的代表:OSSpinLock

互斥锁

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

互斥锁的代表:pthread_mutex


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

1.线程等待锁的时间短

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

3.cpu资源不紧张

4.多核处理器


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

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

2.单核处理器

3.临界区有IO操作

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

5.临界区竞争非常激烈

上一篇 下一篇

猜你喜欢

热点阅读