信号量可以替换互斥锁:
那我们为什么需要互斥?
答案 0 :(得分:0)
Mutex的存在主要是为了保护代码的关键部分。与信号量相比,它可以比信号量具有更好的性能,因为代码更简单,更短或者可以提供更丰富的功能。
有多种类型的互斥锁:“普通”互斥锁,递归互斥锁,共享互斥锁(读写器锁定)。一些互斥实现可以尝试实现“优先级继承”来对抗优先级倒置。所有这些都不能用于信号量,因为它的使用模式太宽泛了。
答案 1 :(得分:-1)
信号量是一种广义互斥量。代替单个缓冲区,我们可以将4 KB缓冲区拆分为4个1 KB缓冲区(相同的资源)。信号量可以与这四个缓冲区相关联。消费者和生产者可以同时处理不同的缓冲区。