spinlock,mutex,semaphore,critical section的作用与差别

Posted claireyuancy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spinlock,mutex,semaphore,critical section的作用与差别相关的知识,希望对你有一定的参考价值。

某年深信服的笔试题,考的就是多线程的同步。简单的解释下方便记忆:

1.spinlock:自旋锁。是专为防止多处理器并发而引入的一种锁。

2.mutex:相互排斥量。

仅仅有拥有相互排斥对象的线程才有訪问公共资源的权限。保证了资源不会同一时候被多个线程訪问。

3.semaphore:信号量。同意多个线程同一时候訪问资源,限制訪问资源的最大线程数。

4.critical section:临界区。

随意时刻仅仅同意一个线程对共享资源进行訪问。

以上是关于spinlock,mutex,semaphore,critical section的作用与差别的主要内容,如果未能解决你的问题,请参考以下文章

伤害/等待互斥锁

Linux内核中mutex,spinlock的使用

Linux内核中mutex,spinlock的使用

Linux内核同步 - spin_lock

thread

「技术干货」Linux内核中的互斥量——Mutex锁