一个快餐店有四名职员:
领班:接收顾客点菜
厨师:准备顾客的饭菜
包工:将做好的饭菜打包
出纳员:收款并提交食品
每个职员可被看成一个进程
用·类C语言模拟
int Foreman = 0; int Chef = 0; int Packer = 0; int Cashier = 0; int GetFood = 0; int payment = 0; int receipt = 0; void customer() { signal(Foreman); order dish; wait(GetFood); signal(payment); pay; wait(receipt); leave; } void foreman() { wait(Foreman); order dish for customer; signal(Chef); } void chef() { wait(Chef); make food; signal(Packer); } void packer() { wait(Packer); pack food; signal(Cashier); } void cashier() { wait(Cashier); signal(GetFood); wait(payment); receive payment; signal(receipt); }