寺庙和尚打水 设信号量mutex_gang, mutex_jing, gang_empty, gang_full, count分别表示使用缸互斥, 使用井互斥, 缸空, 缸满, 水桶总个数 semaphore mutex_jing = 1, mutex_gang = 1, gang_empty = 10, gang_full = 0, count = 3; void 小和尚打水() { while(1) { p(gang_empty); p(count); p(mutex_jing); 从井中打水; v(mutex_jing); p(mutex_gang); 将水倒入缸中; v(mutex_gang); v(count); v(gang_full); } } void 老和尚取水() { while(1) { p(gang_full); p(count); p(mutex_gang); 从缸中取水; v(mutex_gang); v(count); v(gang_empty); } } void main() { parbegin(小和尚打水(), 小和尚打水(), 老和尚取水(), 老和尚取水()...) }