用信号量及其PV操作处理实际问题

p187.43

semaphore empty=1;橘子精=0;糖=0;水=0;

Process product(){

While(true){

P(empty);

产生一个随机数s;

If(s==0) V(橘子精);

If(s==1) V(水);

if(s==2)V(糖)

}

}

Process P1(){ | Process P2(){ | Process P3(){

While(true){ while(true){ while(true){

P(橘子精); P(糖); P(水);

取走橘子精;取走糖;取走水;

V(empty); V(empty); V(empty);

} } }

} } }

Coend

posted on 2019-05-07 17:41  郑楠荞  阅读(95)  评论(0编辑  收藏  举报