寺廟和尚打水 設信號量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(小和尚打水(), 小和尚打水(), 老和尚取水(), 老和尚取水()...) }