Hello =)我正在尝试为下面的问题想出一个伪代码,但我对信号量的同步有点困惑,所以我希望有人能帮助我!
我们有M个消费者和M个生产者,以及2个大小相同的缓冲区。消费者从一个缓冲区消费,生产者在另一个缓冲区生产。当消费者缓冲区为空而生产者缓冲区已满时,缓冲区交换,进程继续。
关于如何使用信号量同步这些进程,有什么想法吗?谢谢!
发布于 2012-09-01 18:57:31
您可以使用两个信号量:一个用于生产者缓冲区,一个用于消费者缓冲区。生产者对于每个写操作都是锁定的,消费者对于每个读操作是锁定的。切换需要锁定两个缓冲区。
顺便说一句,如果生产者缓冲区已满,而消费者缓冲区不为空,该怎么办?
https://stackoverflow.com/questions/12227132
复制相似问题