快餐店问题

一个快餐店有四名职员:

领班:接收顾客点菜

厨师:准备顾客的饭菜

包工:将做好的饭菜打包

出纳员:收款并提交食品

每个职员可被看成一个进程

 

用·类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);
}

 

转载于:https://www.cnblogs.com/bearcarl/p/8620003.html

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值