当前位置:   article > 正文

经典软件设计模型 - 生产者消费者模型_软件 生产者消费者

软件 生产者消费者

简介

这里就不具体介绍了,网上一堆关于生产者消费者模式的介绍,这是一个常用的设计方法,只要牵扯多个线程之间协作一般就需要这个设计方法,简单意思就是有个缓冲负责两个线程之间的交流,一个线程往缓冲区写数据,一个线程从缓冲区读数据。


缓冲区类型

队列缓冲区:缓冲区一般是一个list,每次要写的数据都是新建一块内存,然后将这个内存指针压入队列,读缓冲区就是从队列尾读取,处理完后,将内存释放;这个方法显然存在大量的内存分配和释放,会造成大量CPU开销;

环形缓冲区:一般如果每次处理的数据大小固定,或者虽然大小不固定,但是肯定不会超过某个大小,就可以先分配一定数量的内存块,由于数量有限,所以当数据写到最后一块内存后,再重新回到第一块内存写入,这些内存就像首尾相连一样,类似一个环;

双缓冲区:感觉是环形缓冲区如果是两个缓冲区就是双缓冲区;


生产者和消费者协作

这里就是一个同步问题,环形缓冲区一般使用信号量同步,队列缓冲区可以使用信号量,也可以使用互斥锁,这个看具体应用;

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/267882
推荐阅读
相关标签
  

闽ICP备14008679号