生产者消费者问题 设信号量mutex1, mutex2, full1, full2, empty1, empty2分别表示1和2号缓冲区的访问互斥, 是否满, 是否空 semaphore mutex1 = 1, mutex2 = 1, full1 = 0, full2 = 0, empty1 = 1, empty2 = 1; void A() { while(1) { p(empty1); p(mutex1); 将一个物品放入缓冲区1; v(mutex1); v(full1); } } void B() { while(1) { p(full1); p(mutex1); 从1缓冲区取出一个物品; v(mutex1); v(empty1); p(empty2); p(mutex2); 将一个物品放入缓冲区2; v(mutex2); v(full2); } } void C() { while(1) { p(full2); p(mutex2); 将一个物品从缓冲区2取出; v(mutex2); v(empty2); } } void main() { parbegin(A(), B(), C()); }
原文:https://www.cnblogs.com/mjn1/p/10632104.html