欢迎来到天天文库
浏览记录
ID:38345393
大小:25.50 KB
页数:3页
时间:2019-06-10
《管程-汉森例子》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、typePC=MONITORintIn,out,count;varbuffer:array[0,1,2,…,n-1]ofitem;notfull,notempty:condition;defineget,put;useR,W,wait,signal,check,release;procedureput(x:item)begincheck(St);ifcount==nthenwait(notfull,St);buffer[in]=x;in=(in+1)modn;count=count+1;signal(notempty,St);release(St);e
2、nd;procedureget(x:item)begincheck(St);ifcount==0thenwait(notempty,St);x=buffer[out];out=(out+1)modn;count=count-1;signal(notfull,St);release(St);end;beginin=0;out=0;count=0;end;cobeginprocessproducervarx:item;beginproduce(x);callPC.put(x);end;prcesscomsumervarx:item;begincallPC.
3、get(x);comsumer(x);end;coend;
此文档下载收益归作者所有