开发者社区> 长空翱翔> 正文

生产者-消费者数据同步问题

简介: 用生产者—消费者问题实现数据同步通信数据同步通信过程实际上等同于生产者—消费者问题( Producer-Consumer Problem) . 生产者—消费者问题是一个著名的进程同步问题,它描述的是: 用一群生产者进程生产消息,并用此消息提供给消费者进程消费.
+关注继续查看

用生产者—消费者问题实现数据同步通信数据同步通信过程实际上等同于生产者—消费者问题( Producer-Consumer Problem) .

生产者—消费者问题是一个著名的进程同步问题,它描述的是:

用一群生产者进程生产消息,并用此消息提供给消费者进程消费. 为使生产者进程和消费者进程能并发执行,在它们之间设置一个具有N 个缓冲区的缓冲池,生产者进程可将它所生产的消息投入一个缓冲区中,消费者进程可从一个缓冲区中取得一个消息消费. 尽管所有的生产者进程和消费者进程都是以异步方式进行,但它们之间必须保持同步,即不允许消费者进程到一个空缓冲区中去取消息,也不允许生产者进程到一个已装有消息但该消息未被取走的缓冲区中投放新消息.

采用共享数据的方法简化了数据交换,但在多进程数据通信过程中却可能发生错误,使数据内容被破坏. 为解决问题,可利用信号量的互斥性加以同步保护,获得对缓冲区(数据) 的独占访问,见图4.


image

图4


图4 中,假设缓冲池包含10 个缓冲区,一个任务通过调用BufReq ( ) 可以从缓冲区管理器中获得一个缓冲区,用BufRel ( ) 释放该缓冲区到缓冲区管理器中. 缓冲区管理器共有10 个信号量,当所有的信号量都被使用时,再申请缓冲区的任务将被挂起,直到有信号量可以使用为止. 当一个带有缓冲区的任务完成后,它将调用BufRel ( ) 把缓冲区还给缓冲区管理器.


本文采用计数器信号量来管理缓冲区,与其它信号量相比,计数器信号量的特点在于,它可以保持对信号量释放次数的追踪. 信号量每次释放,计数器加1 ,每次获取,计数器减1. 当计数器为0 时,试图获取该信号量的任务被阻塞. 在中断服务程序中,可以将数据写入缓冲区,然后再释放信号量. 由于它保持对信号量释放次数的追踪功能,如果任务暂时无法读取数据,数据也不会被丢弃.

从上面原理,可以这样信号量的数值,其意义是共享资源的数目

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
【第 06 个代码模型】综合案例:生产者与消费者(解决重复操作问题)|学习笔记
快速学习 【第 06 个代码模型】综合案例:生产者与消费者(解决重复操作问题)
11 0
从源码分析如何优雅的使用 Kafka 生产者
前言 在上文 设计一个百万级的消息推送系统 中提到消息流转采用的是 Kafka 作为中间件。 其中有朋友咨询在大量消息的情况下 Kakfa 是如何保证消息的高效及一致性呢? 正好以这个问题结合 Kakfa 的源码讨论下如何正确、高效的发送消息。
570 0
【kafka实战】分区重分配可能出现的问题和排查问题思路(生产环境实战,附视频)
【kafka实战】分区重分配可能出现的问题和排查问题思路(生产环境实战,附视频)
77 0
Dubbo服务消费者调用过程
上图是服务消费的主过程: 首先通过ReferenceConfig类的private void init()方法会先检查初始化所有的配置信息后,调用private T createProxy(Map map)创建代理,消费者最终得到的是服务的代理, 在createProxy接着调用Protocol接口实现的 Invoker refer(Class type, URL url)方法生成Invoker实例(如上图中的红色部分),这是服务消费的关键。
1050 0
生产者-消费者数据同步问题
用生产者—消费者问题实现数据同步通信数据同步通信过程实际上等同于生产者—消费者问题( Producer-Consumer Problem) . 生产者—消费者问题是一个著名的进程同步问题,它描述的是: 用一群生产者进程生产消息,并用此消息提供给消费者进程消费.
692 0
+关注
长空翱翔
长期从事Windows和linux应用程序开发,系统开发,驱动程序开发以及基于.net平台的软件开发;擅长面向对象程序设计、数据库设计、应用与开发;
938
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
OceanBase 入门到实战教程
立即下载
阿里云图数据库GDB,加速开启“图智”未来.ppt
立即下载
实时数仓Hologres技术实战一本通2.0版(下)
立即下载