Hello =)我正在尝试为下面的问题提出一个伪代码,但是我对信号量的同步有点困惑,所以我希望有人可以帮忙!
我们有M个消费者和M个生产者以及2个相同N大小的缓冲区。消费者从一个缓冲区消费,生产者在另一个缓冲区上消费。当消费者缓冲区为空并且生产者缓冲区已满时,缓冲区交换并继续进程。
有关如何使用信号量同步这些进程的任何想法?谢谢!
答案 0 :(得分:0)
您可以使用2个信号量:一个用于生成器缓冲区,一个用于使用者缓冲区。生产者在每次写入操作时都被锁定,消费者在每次读取操作时都被锁定。切换需要锁定两个缓冲区。
顺便说一下,如果生产者缓冲区已满并且消费者缓冲区不为空,会发生什么?