生产者消费者模型
生产者消费者模型简介
生产者消费者模型是一种数据处理模型,采用这一模型可以将数据的产生和数据的处理这两个过程通过一个缓存区进行隔离,即将数据处理视为消费者数据产生视为生产者。当数据的处理速度大于数据的接收速度时,消费者必须等待生产者产生数据才能进行相应的数据处理;当数据的接收速率大于数据的处理速率时,生产者则必须要等待消费者处理完数据后才能进一步产生新的数据。
采用这一模型后,生产者和消费者只需要关心中间缓存区中是否还有数据以及缓存区中的数据是否已经满载,而不必在意各自的运行状态,此时数据的产生与接收是异步进行的,从而化简了数据处理的逻辑。
LABVIEW的队列函数
Labview中提供了一系列的队列函数来实现中间缓存的作用。

其中获取队列函数相当于创建中间缓存区,元素入队列相当于将指定数据输入进中间缓存区,元素出队列则相当于数据出栈,清空队列和释放队列引用则可以用来释放中间缓存区。借由这一系列函数,我们就可以在Labview中仿真实现生产者消费者模型。
模型仿真
在Labview中进行相应的图形化编程:

具体的编程框架如上图所示,通过两个并行的While结构实现数据产生和数据处理的相互隔离,再通过按键及事件结构实现指定的数据入栈操作,最后通过LED灯状态的转变模拟对应的数据处理过程。具体的仿真结果如下所示:
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 学徒喵ZS的学徒笔记!
评论
