正在加载图片...
可以把生产者-消费者问题的算法描述如下 ●vark: integer; type item: any; buffer: arrayl0.k-l]of item; inout: integer:=0 coumter integer:=0 process producer while (true) /无限循环 produce an item in nextp; /*生产一个产品 e if(counter==k) sleep(; /缓冲满时,生产者睡眠 bufferin = nextp /将一个产品放入缓冲区 in:=(in+1)mod k; /指针推进 counter:=counter+l; /*缓冲内产品数加1 if( counter=1) wakeup( consumer);缓冲为空了,加进一件产品并 唤醒消费者可以把生产者-消费者问题的算法描述如下: ⚫ var k:integer; ⚫ type item:any; ⚫ buffer:array[0..k-1]of item; ⚫ in,out:integer:=0; ⚫ coumter:integer:=0; ⚫ process producer ⚫ while (TRUE) /* 无限循环 ⚫ produce an item in nextp; /* 生产一个产品 ⚫ if (counter==k) sleep( ); /* 缓冲满时,生产者睡眠 ⚫ buffer[in]:=nextp; /* 将一个产品放入缓冲区 ⚫ in:=(in+1) mod k; /* 指针推进 ⚫ counter:=counter+1; /* 缓冲内产品数加1 ⚫ if (counter==1) wakeup( consumer); /* 缓冲为空了,加进一件产品并 唤醒消费者
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有