【王道考研】生产者消费者问题

发布时间:2025-03-20 13:44

消费者发现食品安全问题,可向消费者协会投诉 #生活常识# #生活安全# #食品安全法规#

【王道考研】生产者消费者问题

最新推荐文章于 2021-12-13 21:07:11 发布

小华7788 于 2020-11-29 11:44:23 发布

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

2.3.6 生产者消费者问题

知识来源: B站王道考研 问题描述

系统中有一组生产者进程和一组消费者进程,生产者进程每次生产一个产品放入缓冲区,消费者进程每次从缓冲区中取出一个产品并使用。
生产者、消费者共享一个初始为空、大小为n的缓冲区。
只有缓冲区没满时,生产者才能吧产品放入缓冲区,否则必须等待。
只有缓冲区不为空时,消费者才能从中取出产品,否则必须等待。
缓冲区是临界资源,各进程必须互斥地访问

在这里插入图片描述

如何实现

semaphore mutex = 1; // 互斥信号量,实现对缓冲区的互斥访问 semaphore empty = n; // 同步信号量,表示空闲缓冲区的数量 semaphore full = 0; // 同步信号量,表示产品的数量,即非空缓冲区的数量 123

producer(){while(1){生产一个产品;P(empty); // 消耗一个空闲缓冲区,保证没有在同一个放入产品P(mutex); // 实现互斥访问把产品放入缓冲区;V(mutex); // 实现互斥访问V(full); // 增加一个产品} } 12345678910

consumer(){while(1){P(full); // 消耗一个非空缓冲区(产品)P(mutex);从缓冲区取出一个产品;V(mutex);V(empty); // 空出一个缓冲区使用产品} } 12345678910

实现互斥的P操作一定要在实现同步的P操作之后。
V操作不会导致进程阻塞,因此两个V操作顺序可以交换。

在这里插入图片描述

网址:【王道考研】生产者消费者问题 https://www.yuejiaxmz.com/news/view/833116

相关内容

消费者问题认知
消费者使用洗衣粉时应注意哪些问题
消费者问卷调查专题报告:数说新消费 产业趋势背后的秘密
连体瓶盖消费者研究:消费者更看重产品安全性和便利性
立昇净水:消费者选净水器应考虑“环境友好型”产品
消费者心理
消费者心理学
消费者行为学
购物渠道对消费者购买决策的影响研究——心理距离视角
《中国消费者居家环境健康研究白皮书》发布

随便看看