- 6
- 0
- 约1.15万字
- 约 13页
- 2016-11-25 发布于湖北
- 举报
java 生产者消费者问题
引言
生产者和消费者问题是线程模型中的经典问题:生产者和消费者在同一时间段内共用同一个存储空间,如下图所示,生产者向空间里存放数据,而消费者取用数据,如果不加以协调可能会出现以下情况:
生产者消费者图
存储空间已满,而生产者占用着它,消费者等着生产者让出空间从而去除产品,生产者等着消费者消费产品,从而向空间中添加产品。互相等待,从而发生死锁。
生产者消费者问题是研究多线程程序时绕不开的经典问题之一,它描述是有一块缓冲区作为仓库,生产者可以将产品放入仓库,消费者则可以从仓库中取走产品。解决生产者/消费者问题的方法可分为两类:
(1)采用某种机制保护生产者和消费者之间的同步;
(2)在生产者和消费者之间建立一个管道。
第一种方式有较高的效率,并且易于实现,代码的可控制性较好,属于常用的模式。第二种管道缓冲区不易控制,被传输数据对象不易于封装等,实用性不强。因此本文只介绍同步机制实现的生产者/消费者问题。
同步问题核心在于:如何保证同一资源被多个线程并发访问时的完整性。常用的同步方法是采用信号或加锁机制, 保证资源在任意时刻至多被一个线程访问。Java语言在多线程编程上实现了完全对象化,提供了对同步机制的良好支持。在Java中一共有四种方法支持同 步,其中前三个是同步方法,一个是管道方法。
(1)wait() / notify()方法
(2)await()
您可能关注的文档
最近下载
- 6×300MW火力发电厂电气部分设计毕业设计.doc VIP
- Unit 2Health and fitness重点单词讲解课件(共27张PPT) 2025年中职英语高教版基础模块2(含音频+视频).pptx VIP
- (2026版)《中华人民共和国民族团结进步促进法》解读PPT课件.pptx VIP
- 2025成都中考生物真题及答案解析.docx VIP
- 全国临床检验操作规程PDF打印.pdf VIP
- 初中语文部编版七年级下册第17 课《短文两篇》预习指导(课文+注释+翻译+赏析)(《陋室铭》+《爱莲说》).doc VIP
- 【新课标】伟大的友谊 统编版语文六年级下册.ppt VIP
- 2026年高考作文备考训练之题目解析及范文:数字时代,“一键生成”成为常态.docx VIP
- 广东实验中学2024-2025学年高二下学期期中考试数学试题.pdf VIP
- 酒店损益表介绍及成本费用控制.pdf VIP
原创力文档

文档评论(0)