2017-05-03 149 views

回答

-1

信号量是一个广义的互斥量。代替单个缓冲区,我们可以将4 KB缓冲区分成4个1 KB缓冲区(相同的资源)。信号量可以与这四个缓冲区相关联。消费者和生产者可以同时在不同的缓冲区中工作。

http://www.geeksforgeeks.org/mutex-vs-semaphore/

+0

那么,如果我们确实有一些泛化的实体,为什么我们需要专门的实体呢?为什么我们不能总是使用广义的? – pavelkolodin

0

互斥主要存在来保护的代码的临界段。与信号量相比,它可以比信号量更好的性能,因为代码更简单,更短,或者它可以提供更丰富的功能。

互斥锁有很多种类型:“普通”互斥量,递归互斥量,共享互斥量(读写器锁定)。一些互斥体实现可以尝试实现“优先级继承”来对抗优先级反转。所有这些都不能用于信号量,因为它的使用模式太宽泛了。

相关问题