1、介绍
在linux中,除信号量
以外,还有一个Mutex
互斥体,这两个实现很类似。
信号量
是在并行处理环境中对多个处理器的访问某一个公共资源进行保护机制,
Mutex
用于只允许一个去访问,其实使用信号量
也能实现,也就是互斥信号量
,但为什么还要费劲去实现一个Mutex
呢。
2、差异
信号量
根据count
的大小,可以分为计数型信号量
和互斥型信号量
。
这时的信号量
就像是可以容纳N人的餐厅,只要有位置就可以进去吃饭,当餐厅位置满了就只能在外面等待。
而Mutex
就像私人厨师,在一段时间内只属于你,后面如果想用就得排队。但信号量
的互斥量也能达到此效果,只需要把count
置为1
即可,那为什么还需要一个Mutex
来实现一个同样的功能呢,这岂不是多此一举么?
3、由来
Mutex
最早是由红帽(RedHat)的资源内核专家Ingo Molnar
在Linux2.6.16
中设计和实现的。在设计之初专家说到:信号量
在Liunx
中使用是没有任何问题的,但是Mutex
的语义相对于信