三、生产者消费者题型 生产者-消费者题型在各类考试(考研、程序员证书、程序员面试笔试、期末考试)很常见,原因之一是生产者-消费者题型在实际的并发程序(多进程、多线程)设计中很常见;之二是这种题型综合性较好,涉及进程合作、互斥,有时还涉及死锁的避免。生产者-消费者题型可以全面考核你对并发程序的理解和设计能力。生产者-消费者题型最基本的是有界缓冲区的生产者-消费者问题和无界缓冲区的生产者-消费者问题,对这两个问题的解我们应该背下来,就像我们念高中时背一些题型一样。1 有界缓冲区生产者-消费者问题的解前面的课程已多次讲过。假设缓冲区是无界的,试用信号灯 与 PV 操作给出解法。 答:由于是无界缓冲区,所以生产者不会因得不到缓冲区而被阻塞。所以只需在前面的有界缓冲区解中去掉信号量empty及有关的PV操作即可。2. 设有一个可以装A,B两种物品的仓库,其容量无限大,但要求仓库中A,B两种物品的数量满足下述不等式:-MA物品的数量-B物品的数量N,其中M和N为正整数。试用信号灯和PV操作描述A, B两种物品的入库过程。