`

生产者消费者模式浅析

阅读更多

什么是生产者消费者模式

 

在工作中,大家可能会碰到这样一种情况:某个模块负责产生数据,这些数据由另一个模块来负责处理(此处的模块是广义的,可以是类、函数、线程、进程等)。产生数据的模块,就形象地称为生产者;而处理数据的模块,就称为消费者。在生产者与消费者之间在加个缓冲区,我们形象的称之为仓库,生产者负责往仓库了进商品,而消费者负责从仓库里拿商品,这就构成了生产者消费者模式。结构图如下:

 

生产者消费者模式的优点

 

1、解耦

假设生产者和消费者分别是两个类。如果让生产者直接调用消费者的某个方法,那 么生产者对于消费者就会产生依赖(也就是耦合)。将来如果消费者的代码发生变化, 可能会影响到生产者。而如果两者都依赖于某个缓冲区,两者之间不直接依赖,耦合也 就相应降低了。

举个例子,我们去邮局投递信件,如果不使用邮筒(也就是缓冲区),你必须得把 信直接交给邮递员。有同学会说,直接给邮递员不是挺简单的嘛?其实不简单,你必须 得认识谁是邮递员,才能把信给他(光凭身上穿的制服,万一有人假冒,就惨了)。这 就产生和你和邮递员之间的依赖(相当于生产者和消费者的强耦合)。万一哪天邮递员 换人了,你还要重新认识一下(相当于消费者变化导致修改生产者代码)。而邮筒相对 来说比较固定,你依赖它的成本就比较低(相当于和缓冲区之间的弱耦合)。

2、支持并发

由于生产者与消费者是两个独立的并发体,他们之间是用缓冲区作为桥梁连接,生产者只需要往缓冲区里丢数据,就可以继续生产下一个数据,而消费者只需要从缓冲区了拿数据即可,这样就不会因为彼此的处理速度而发生阻塞。

接上面的例子,如果我们不使用邮筒,我们就得在邮局等邮递员,直到他回来,我们把信件交给他,这期间我们啥事儿都不能干(也就是生产者阻塞),或者邮递员得挨家挨户问,谁要寄信(相当于消费者轮询)。

3、支持忙闲不均

缓冲区还有另一个好处。如果制造数据的速度时快时慢,缓冲区的好处就体现出来 了。当数据制造快的时候,消费者来不及处理,未处理的数据可以暂时存在缓冲区中。 等生产者的制造速度慢下来,消费者再慢慢处理掉。

为了充分复用,我们再拿寄信的例子来说事。假设邮递员一次只能带走1000封信。 万一某次碰上情人节(也可能是圣诞节)送贺卡,需要寄出去的信超过1000封,这时 候邮筒这个缓冲区就派上用场了。邮递员把来不及带走的信暂存在邮筒中,等下次过来 时再拿走。

 

实际应用

 

在P3版本升级项目中,信息服务器要接收大批量的客户端请求,原来那种串行化的 处理,根本无法及时处理客户端请求,造成信息服务器大量请求堆积,导致丢包异 常严重。之后就采用了生产者消费者模式,在业务请求与业务处理间,建立了一个List 类型的缓冲区,服务端接收到业务请求,就往里扔,然后再去接收下一个业务请求,而 多个业务处理线程,就会去缓冲区里取业务请求处理。这样就大大提高了服务器的相 应速度。

分享到:
评论
1 楼 putonyuer 2014-04-07  
如果不是转载 , 要点总结的非常好  , 牛逼。

相关推荐

    零售企业物流模式浅析

    ### 零售企业物流配送模式浅析 #### 一、零售企业现状及物流配送的重要性 随着中国经济的快速发展,零售业作为重要的经济组成部分也在经历着深刻的变革。在这一过程中,物流配送作为连接供应链上下游的关键环节,...

    社会阶层对消费者行为的影响浅析.doc

    《社会阶层对消费者行为的影响浅析》 社会阶层,这一概念源自马克思主义理论,指的是由于社会经济地位、生产资料关系及财富分配不均所形成的社会集团。社会阶层不仅定义了个体在社会中的地位,还塑造了其价值观、...

    浅析消费者文化如何促进电商领域的发展.zip

    它反映了消费者的购物偏好、价值取向和生活方式,对电商平台的商品选择、营销策略和服务模式有着直接的影响。例如,当消费者文化倾向于追求个性化和定制化时,电商平台就需要提供更加多样化的产品选项和个性化的购物...

    浅析山寨手机的营销模式.docx

    生产环节主要由山寨手机生产商完成,通过灵活的生产方式,满足消费者的需求。定价环节主要根据市场需求和成本来确定价格。渠道环节主要包括内需和外贸两方面,通过多样化的销售渠道,满足消费者的需求。促销环节主要...

    浅析短视频电商化的运营模式.doc

    浅析短视频电商化的运营模式 短视频电商化是将短视频平台和电商平台相结合,创造了一种新的发展模式。这种模式可以为电商行业带来新的流量和切入方式,并为短视频平台和内容的原创作者提供了一种可行的盈利模式。 ...

    区块链技术在新零售模式中的应用浅析.pdf

    随着区块链技术的不断发展和完善,其在新零售领域的应用前景广阔,有望推动新零售模式的创新和升级,为消费者带来更优质、更安全的购物体验。同时,这也对相关法律法规和监管机制提出了新的挑战,需要同步跟进,以...

    大数据变现独角兽-10种商业模式浅析.pdf

    大数据的深度挖掘不仅推动了生产效率的提升,还满足了消费者的个性化需求,催生出一系列创新的商业模式。 **1. 人工智能** 人工智能是大数据变现的重要途径,尤其是在B2B市场中。数据与硬件设备的结合,使得智能...

    浅析小米手机电子商务化的运营模式.pptx

    电子商务提供了一个直接连接消费者和生产者的平台,减少了传统销售中的中间环节,降低了成本。对于小米而言,电子商务化意味着可以直接面对消费者,获取第一手的市场反馈,快速调整产品策略,提升产品性价比。同时,...

    最新浅析国内消费电子厂商的营销渠道.doc

    例如,通过APP实现线上购物、售后服务、产品信息推送等功能,不仅可以降低成本,还可以通过数据分析更好地了解消费者需求,增强市场竞争力。 此外,社交媒体营销、电商平台合作、内容营销等也是新兴的营销策略。...

    浅析物联网技术在电子商务模式中的影响及应用.pdf

    在电子商务领域,物联网技术的加入可以使得企业通过客户行为分析和智能推荐系统更准确地把握消费者需求,从而提升服务水平和客户满意度,进一步加强与消费者的互动和关系维护。 3. 推动企业持续开展产品创新: ...

    浅析生态猪养殖模式与优势.doc

    【生态猪养殖模式】生态猪养殖模式是一种注重环保和猪肉品质的养殖方法,它强调猪只的健康生长和环境的可持续性。...随着消费者对健康食品需求的增长,生态猪养殖模式有望得到更广泛的应用和推广。

    浅析生鲜农产品电商物流配送模式的优化.zip

    7. 需求预测与规划:利用数据分析技术预测消费者需求,合理安排生产和配送,减少库存积压和过度损耗。 8. 多式联运:结合公路、铁路、航空等多种运输方式,实现快速、灵活的货物流转,缩短配送时间。 9. 最后一...

    张涵诚:大数据变现独角兽-10种商业模式浅析1171

    以BATFGW为代表的互联网巨头,其商业模式主要围绕搜索、信息展示、社交广告展开,通过大数据分析,精准投放广告,实现品牌与消费者的共鸣。大数据不再是简单的信息传播工具,而是成为塑造生活内容的一部分。这些巨头...

    浅析农产品电子商务创新模式.doc

    首先,P2B2C(Producer to Business to Consumer)模式是一种将个体农民(P)、企业(B)和消费者(C)紧密连接的方式。企业扮演着中介角色,通过设立地方分公司,收集农产品信息并发布,同时与农户进行深度合作,...

    浅析山寨手机的营销模式.doc

    4.1 生产:灵活的生产模式使山寨手机能快速响应市场需求。 4.2 定价:低价策略是山寨手机的核心竞争力。 4.3 渠道:通过批发、零售以及外贸等多种渠道进行销售。 4.4 促销:运用各种营销手段吸引消费者,如广告宣传...

    服装营销麦当劳式的大众时尚浅析奢侈品的消费.docx

    数字化设计工具加速了设计过程,全球化采购网络降低了原材料成本,自动化生产线提高了生产效率,而电商平台则扩大了销售渠道,使消费者能够更快地接触到最新款式。 奢侈品消费的改变也与此紧密相关。过去,奢侈品...

    浅析生产制造中的大数据关键技术及其应用

    这种转变不仅涉及将厂房、生产线、设备等实体要素转变为数字形式,更重要的是通过对海量数据的收集和分析来整合企业资源,以应对消费者日益增长的个性化需求。 **数据的基本分类**:大数据主要由两类构成——人类...

    新媒体背景下我国跨境电商发展浅析.pdf

    B2B模式是指境内外生产者、贸易商等作为卖家,而境外贸易商、批发零售商等作为买家进行交易,典型平台如“阿里巴巴”。B2C模式是指境内的生产商、贸易商、网店店主、生产商等向国外消费者直接销售商品的模式,这种...

    RabbitMQ浅析.pdf

    消息队列的主要作用是实现生产者和消费者的解耦,即生产者负责发送消息,而消费者负责接收消息,两者之间不直接交互,仅通过消息队列进行数据通信。这种方式可以提高系统的灵活性和可伸缩性,同时也能实现任务的异步...

    浅析电子商务环境下第三方物流业务模式.doc

    在这种背景下,第三方物流企业的角色日益凸显,它们作为连接生产者与消费者的桥梁,承担着商品的仓储、运输、配送等一系列物流活动。 1.2 第三方物流的定义与作用 第三方物流(Third-Party Logistics,3PL)是指由...

Global site tag (gtag.js) - Google Analytics