0

你好=)我正在尝试为以下问题提出一个伪代码,但我对信号量的同步有点困惑,所以我希望有人能提供帮助!

我们有 M 个消费者和 M 个生产者以及 2 个相同 N 大小的缓冲区。消费者从一个缓冲区消费,生产者在另一个缓冲区生产。当消费者缓冲区为空而生产者缓冲区已满时,缓冲区交换并且进程继续。

关于如何使用信号量同步这些进程的任何想法?谢谢!

4

1 回答 1

0

您可以使用 2 个信号量:一个用于生产者缓冲区,一个用于消费者缓冲区。生产者在每次写操作时都被锁定,消费者在每次读操作时都被锁定。切换需要锁定两个缓冲区。

顺便说一句,如果生产者缓冲区已满而消费者缓冲区为空,会发生什么?

于 2012-09-01T10:57:31.110 回答