`
skyxiewanting
  • 浏览: 12073 次
  • 性别: Icon_minigender_2
  • 来自: 济南
社区版块
存档分类
最新评论

生产者与消费者关系的又一种说法

阅读更多
    在平时的编程中,经常遇到一个线程要产生数据,而另一个线程要处理产生出来的数据,这其实就是生产者和消费者的关系。生产者在产生数据后可以直接调用消费者处理数据;也可以把数据放在一个缓冲区中,让消费者从缓冲区中取出数据处理,两种方式从调用方式上来说,第一种可是说是同步的,即生产者在生产出数据后要等待消费者消耗掉后才能生产下一个数据,等待时间的长短取决于消费者处理数据的能力;第二种方式是异步的,生产者只管生产数据,然后扔到一个缓冲区内,不管数据是否被立即处理了,消费者则从缓冲区中依次取出数据进行自己节奏的处理。从线程模型角度来说,第一种是单线程的,而第二种则是多线程的。多线程必须要考虑的一个问题是线程之间的协作,协作即协调合作,不要乱套,以生产者和消费者模型而言,就是当缓冲区里没有数据时消费者要等待,等待生产者生产数据,当缓冲区满的时候生产者要等待,等待消费者消耗掉一些数据空出位置好存放数据。


    java中为了实现多线程之间的协助,需要用到几个特性:wait(),notify(),notifyAll(),synchronized,synchronized相当于操作系统里的临界区或者锁的概念,所谓临界区就是说一次只能有一个线程进去,其他想进入的线程必须等待,加了synchronized锁后,才能调用wait(),notify()和notifyAll()操作,wait方法被调用后,当前线程A(举例)进入被加锁对象的线程休息室,然后释放锁,等待被唤醒。释放的锁谁来获取?当然是由先前等待的另一个线程B得到,B在获得锁后,进行某种操作后通过notify或者notifyAll把A从线程休息室唤醒,然后释放锁,A被唤醒后,重新获取锁定,进行下一语句的执行。


    再回到生产者和消费者模型,如果引入了缓冲区的话就需要处理生产者线程和消费者线程之间的协作,缓冲区可以有这几种,队列缓冲区,比如队列或者栈,队列缓冲区的特点是其长度是动态增长的,这就意味着内存的动态分配带来的性能开销,同时队列缓冲区还会产生因为多线程之间的同步和互斥带来的开销。环形缓冲区可以解决内存分配带来开销的问题,因为环形缓冲区长度是固定的。但是环形缓冲区还是无法解决同步互斥带来的多线程切换的开销,如果生产者和消费者都不止一个线程,带来的开销更大,终极解决办法是引入双缓冲区,何为双缓冲区?双缓冲区顾名思义是有两个长度固定的缓冲区A B,生产者和消费者只使用其中一个,当两个缓冲区都操作完成后完成一次切换,开始时生产者开始向A里写数据,消费者从B里读取数据,当A写满同时B也读完后,切换一下,这时消费者从A里取数据,生产者向B写数据,由于生产者和消费者不会同时操作同一个缓冲区,所以不会发生冲突。


    生产者和消费者模型不止是用在多线程之间,不同进程之间也可以有。线程和进程到底有什么区别?这是很多程序员搞不清的问题,其实很简单,进程有自己的地址空间和上下文,线程是在一个进程上并发执行的代码段。其实在win32系统中进程只是占用一定长度的地址空间,进程中总是有一个主线程来运行。消费者和生产者模型应用于进程间通信的典型例子是分布式消息处理,消息的消费者进程需要一个缓冲区缓冲收到的消息,消息的生产者进程也需要一个缓冲区缓冲将要发送的消息,这样可以一定程度上减少因为网络断开引起的消息丢失。
分享到:
评论

相关推荐

    高三政治第一轮复习八月测试题.docx

    10. 汇率的概念:汇率是两国货币之间的比价,表示一种货币相对于另一种货币的价值。②④正确,因此答案是C。 11. 生活消费心态:诗句反映了作者在物质需求得到满足后,更注重精神生活的享受,选项C正确。 12. 消费...

    客户关系管理期末复习题及答案.doc

    客户关系管理(CRM)是一种商业策略,旨在改善企业与客户之间的关系,提高客户满意度和忠诚度,从而增加企业的盈利能力。CRM系统通过集成销售、市场营销和服务流程,帮助企业更好地理解和响应客户需求。 1. **判断...

    地板安全消费之甲醛篇.docx

    地板作为家居装修的重要组成部分,其安全性,尤其是甲醛问题,一直是消费者关注的焦点。伪劣地板在市场上仍然存在,通过改变生产工艺,如模压技术,来伪装成优质产品,但其本质依然无法改变,通常采用老旧工艺、低...

    辽宁省凌海市2020学年七年级生物第一次月考试题(无答案).doc

    (5)生产者与消费者关系是A. 蚕吃桑叶。 (6)生态系统能量最终来自太阳能。 实验设计(关于修正液对人体是否有害): 提出问题:修正液是否对人体有害? 作出假设:修正液可能会对人体健康造成不良影响。 猜测...

    市场营销期末考试题附答案汇总.docx

    25. 推销对象包括消费者、生产用户和中间商(题目的说法正确)。 26. 广告是企业促销中广泛应用的信息传播活动(题目的说法正确)。 27. 常见的广告媒体包括报纸、杂志、广播和电视(题目的说法正确)。 28. 广告...

    课标专用2020版高考生物二轮复习热考主题八某生态系统精练含解析201912071154

    题目中的选项B指出狼从猎物获得的能量大于猎物从生产者获得的能量,这一说法是错误的。 【环境容纳量与种群动态】 环境容纳量(K值)是指在特定环境条件下,某一物种所能达到的最大稳定种群数量。题中提到岛上狼的...

    八年级生物下册第22_25章测试卷北师大版.doc

    21. 计划生育效果:我国实行计划生育后,人口增长率降低,这直接表明了计划生育是一种有效的控制人口增长的方法。 22. 控制人口数量的目的:最终目的是实现人口与资源、环境的可持续发展,消除饥饿、提高生活质量,...

    高三政治人教一轮考点规范练2多变的价格Word版含解析-7页.pdf

    3. 价格变动的影响:价格变动不仅影响消费者的购买力,也会影响生产者的生产决策。如题中所述,“时间就是金钱,效率就是生命”,意味着提高生产效率可以降低成本,增加收益。而“不买贵的只买对的”体现了消费者...

    安徽省六安市舒城中学2016年高二生物暑假作业29.doc

    在这个过程中,能量从生产者开始,通过食物链或食物网传递给消费者,最终以热能形式散失。 2、**能量的输入**:能量流动的起点是生产者通过光合作用固定的太阳能。流经生态系统的总能量是生产者固定的太阳能总量。 ...

    甘肃省民乐县第学2018_2019学年高一政治10月月考试题.doc

    1. 知识产权:知识产权是一种无形财产权,它包括专利权、商标权、著作权等。知识产权的商品属性体现在它具有使用价值和交换价值,能够用于交换,因此①③④正确,答案是B。知识产权的持有者拥有独占权,其使用价值和...

    21春南开大学《管理经济学》在线作业-1参考答案.docx

    #### 下列哪一种说法是正确的 - **知识点**: 微积分中的基本概念之一是导数。 - **选项解析**: - A. **常数的导数为0**:这是正确的,因为常数的变化率为零。 - B. **常数的导数为负**:这是错误的描述。 - C. *...

    广西南宁市2020学年七年级生物上学期段考试题(无答案) 新人教版.doc

    5. **食物链**:选择题5涉及生产者与消费者之间的关系,兔子吃青草体现了初级消费者(兔子)与生产者(青草)之间的关系。 6. **环境对生物的影响**:选择题6提到“神农香菊”在原产地有香味,但在其他地方失去香味...

    0-中国建设银行2014年校园招聘完整试题真题及答案解析(独家提供).doc

    它会导致产品供给过多,因为生产者没有承担全部的社会成本。 6. **完全竞争市场的需求曲线**:在完全竞争市场中,整个行业的需求曲线是所有个别企业需求曲线的水平相加,因此它是向右下方倾斜的,且不影响市场价格...

    2018年10月自学考试全国统一命题考试经济学 (二) 试卷及答案.docx

    - **知识点解析**:第五题询问了“如果等产量线与等成本线无交点,则哪种说法正确?” - **选项解析**: - A. 保持等产量线不动,增加成本投入,能实现最优生产:这是正确的,因为这意味着可以通过增加投入来移动...

    福建省师大附中2014_2015学年高一政治上学期期末考试试题

    8. 财政政策与消费引导:实施节能产品补贴,从消费者角度看,有助于引导绿色消费,提高消费质量,选项A正确。 9. 汇率变动及其影响:卢布兑换人民币的汇率下降,意味着卢布贬值,人民币升值,选项B正确。 10. 汇率...

    河南省百校联盟2021届高三11月教学质量监测政治试题(乙卷) Word版含答案byfen.docx

    2. **使用价值与商品身份**:汽车作为一种商品,其核心价值在于它的使用价值,即它能为消费者提供运输服务的功能。如果汽车存在严重缺陷,如本题中的车门在行驶中可能突然打开,那么它就丧失了应有的使用价值,不再...

    wireless.zip

    >第一种情况rabbitmq提供了transaction和confirm模式来确保生产者不会丢失消息 >transaction机制是说发送消息前,开启事务(channel.txSelect()),然后再发送消息,如果发送消息的过程中出现什么异常就回滚 >(channel...

    巢湖2020年事业编招聘考试真题及答案解析下载版.docx

    虽然没有明确给出拉姆斯菲尔德的态度,但从上下文中可以推断出他对这一说法持否定态度,认为这是对实际情况的一种误解。 ### 经济学家关于能源管制的观点 文件中讨论了经济学家对政府能源管制的看法,即认为市场...

    江苏省东台市第五联盟2020学年八年级生物上学期12月月考试题 新人教版.doc

    ①→②→③,即生产者被初级消费者吃,初级消费者被次级消费者吃。 18. DDT在生物体内富集,最高含量的会是顶端消费者,即C.企鹅。 19. 图(19)中,不正确的推断是D.根据吃与被吃的关系只有1条食物链,通常生态系统...

    山东省临沂市七年级生物上学期第一次月考试题 新人教版 试题.doc

    15. 第十五题,所有动物都是消费者的说法是错误的,有些动物如蜣螂和蚯蚓属于分解者。 16. 第十六题,一个生态系统应包括生物和非生物部分,临沂雕塑公园作为一个地理区域,包含了多种生物和非生物元素,可以视为一...

Global site tag (gtag.js) - Google Analytics