标签: mutex semaphore producer-consumer
为什么在生产者消费者问题中使用有界缓冲区时,除了信号量之外还必须使用互斥量?
答案 0 :(得分:0)
empty:semaphore(n) full: semaphore(0) mutex: semaphore(1)
"互斥"用于锁定缓冲区。
"全"如果缓冲区为空,则用于阻止使用者。
"空"如果缓冲区已满,则用于阻止生成器。
这就是你需要3个信号量的原因。
您可以轻松地对代码进行谷歌搜索,因此我不会将其粘贴到此处。