生产者消费者_记录型信号量-c语言描述版本
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
semaphore
mutex=1,empty=n,full=0; item buffer[n];
int in=out=0;
void producer()
{
while (1)
{
…
produce an item in
nextp;
...
wait(empty);
wait(mutex);
buffer[in]=nextp;
in=(in+1) mod n;
signal(mutex);
signal(full);
}
} void consumer()
{
while (1)
{
...
wait(full);
wait(mutex);
nextc=buffer[out];
out=(out+1) mod n;
signal(mutex);
signal(empty);
...
consume the item in
nextc;
…
}
}
main()
{
cobegin {
producer();
consumer();
}
}