- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
1. 概述 2
1.1 设计题目与描述 2
1.2 设计要求 2
2. 总的设计思想及系统平台、语言、工具 2
2.1 设计思想 2
2.2 系统平台 4
2.3 系统语言 4
2.4 系统工具 4
3. 数据结构与模块说明 4
4. 流程图 5
4.1 生产者 5
4.2 消费者 5
5. 源程序 6
6. 运行结果 10
7. 课程设计总结与体会 11
8. 参考文献 11
用多线程同步方法解决生产者-消费者问
题 (Producer-Consumer Problem)
1. 概述
1.1 设计题目与描述
用 多 线 程 同 步 方 法 解 决 生 产 者 - 消 费 者 问 题
(Producer-Consumer Problem)
有一群生产者进程在生产产品, 并将这些产品提供给消费者进
程去消费。 为使生产者进程与消费者进程能并发执行, 在两者之间设
置了一个具有 n 个缓冲区的缓冲池, 生产者进程将它所生产的产品放
入一个缓冲区中; 消费者进程可从缓冲区中取走产品去消费。 尽管所
有的生产者进程和消费者进程都是以异步方式运行, 但它们之间必须
保持同步, 即不允许消费者进程到一个空的缓冲区取产品, 也不允许
生产者进程向一个已装满产品且尚未取走的缓冲区投放产品。
1.2 设计要求
1)为每个生产者/消费者产生一个线程, 设计正确的同步算法
2 )每个生产者和消费者对有界缓冲区进行操作后,即时显示
有界缓冲区的当前全部内容、 当前指针位置和生产者/消费者线程的
自定义标识符。
3 )生产者和消费者各有两个以上。
4 )多个生产者或多个消费者之间须共享对缓冲区进行操作的函数代
码。
2.总的设计思想及系统平台、语言、工具
2.1 设计思想
生产者—消费者问题是一种同步问题的抽象描述。
计算机系统中的每个进程都可以消费或生产某类资源。当系统中某一
进程使用某一资源时,可以看作是消耗,且该进程称为消费者。
而当某个进程释放资源时,则它就相当一个生产者。
因为有多个缓冲区,所以生产者线程没有必要在生成新的数据之前等
待最后一个数据被消费者线程处理完毕。同样,消费者线程并不一定每次
只能处理一个数据。在多缓冲区机制下,线程之间不必互相等待形成死锁,
因而提高了效率。多个缓冲区就好像使用一条传送带替代托架,传送带上
一次可以放多个产品。生产者在缓冲区尾加入数据,而消费者则在缓冲区
头读取数据。当缓冲区满的时候,缓冲区就上锁并等待消费者线程读取数
据;每一个生产或消费动作使得传送带向前移动一个单位,因而,消费者
线程读取数据的顺序和数据产生顺序是相同的。
可以引入一个 count 计数器来表示已经被使用的缓冲区数量。用
hNotEmptyEvent 和 NotFullEvent 来同步生产者和消费者线程。每当生产
者线程发现缓冲区满 ( count=BufferSize ),它就等待 hNotEmptyEvent 事
件。同样,当消费者线程发现缓冲区空,它就开始等待 hNotEmptyEvent。
生产者线程写入一个新的数据之后, 就立刻发出 hNotEmptyEvent 来唤醒正
在 等 待 的 消 费 者 线 程 ; 消 费 者 线 程 在 读 取 一 个 数 据 之 后 , 就 发 出
hNotFullEvent 来唤醒正在等待的生产者线程。
通过一个有界
您可能关注的文档
- 菜点酒水知识试卷.pdf
- 菜点酒水知识试卷A.pdf
- 菜点酒水知识试卷B.pdf
- 酒水知识教案.pdf
- 最新菜点酒水知识考试题.pdf
- (项目管理)项目维修责任制细则.pdf
- [最新文档]2020年XX公司特种设备安全管理制度(含岗位责任制).pdf
- 2020机电设备管理员安全生产岗位责任制.pdf
- 氨压缩机人员岗位责任制.pdf
- 菜点酒水知识实用版.pdf
- 2025年智能电网柔性直流输电技术在我国西部地区应用前景.docx
- 7.2 弹力-人教版八年级物理下册.pptx
- 2025年智能电网柔性直流输电技术在智能变电站中的应用研究.docx
- 2025年智能电网柔性直流输电技术在智能电网智能化存储中的应用.docx
- 2025年智能电网柔性直流输电技术在新能源并网中的应用研究.docx
- 2025年智能电网柔性直流输电技术在智能电网智能化控制中的应用.docx
- 2025年智能电网柔性直流输电技术在智能电网智能化预测中的应用.docx
- 2025年智能电网柔性直流输电技术在智能电网智能化服务中的应用.docx
- 2025年智能电网柔性直流输电技术在智能电网智能化运维中的应用.docx
- 2025年智能电网柔性直流输电技术智能化保护系统研究.docx
最近下载
- 整本书阅读+《红岩》 统编版八年级语文上册.pptx VIP
- 孙永强《财务管理》武汉大学-第9章-短期资产管理.pptx VIP
- CY14-1B轴向柱塞泵说明书.pdf VIP
- 蒸汽发生器安装工程方案(3篇).docx
- (正式版)B 4706.9-2008 家用和类似用途电器的安全 剃须刀、电推剪及类似器具的特殊要求.docx VIP
- 2021年(广西壮族自治区)壮族自治区高中学业水平合格考英语真题(带答案).pdf VIP
- 《智能故障诊断》课件.ppt VIP
- 【长租公寓】冠寓运营管理手册.docx VIP
- 2023年江西中医药大学计算机科学与技术专业《操作系统》科目期末试卷B(有答案).docx VIP
- 融合新闻:通往未来新闻之路-暨南大学-中国大学MOOC慕课答案.pdf VIP
原创力文档


文档评论(0)