当前位置: 首页 > news >正文

LabVIEW生产者消费者架构

LabVIEW生产者消费者架构

生产者/消费者模式可以轻松地同时处理多个进程,同时还能以不同速率迭代。

缓冲通信

当多个进程以不同速度运行时,就适合采用进程间缓冲通信。有了足够大的缓冲区后,生产者循环可以以快于消费者循环的速度运行,而不会丢失数据。

比如,有一个包含两个进程的应用程序,第一个进程负责数据采集,第二个进程将数据传输到网络上。第一个进程的运行速度是第二个进程的三倍。如果使用生产者/消费者设计模式来实现此应用程序,则数据采集进程充当生产者,网络进程充当消费者。当拥有足够大的通信队列(缓存区)时,网络进程便可以访问数据采集循环采集到的大量数据。这种数据缓存能力能够最大程度地减少数据丢失。

对于在使用队列功能时发生的缓冲通信,如果要将其可视化,请参见范例程序:使用生产者/消费者循环移动LabVIEW窗口。

数据采集和处理

在采集需按顺序处理的多组数据时,通常采用生产者/消费者模式。

假设要编写一个应用程序,该应用程序在接受数据的同时,还要按照接收顺序处理数据。由于这些数据的排队(生产)速度比实际处理(消费)速度高出很多,因此生产者/消费者设计模式最适合此类应用程序。通过这种方法,消费者循环可以按自己的速率处理数据,同时生产者循环也可以让额外的数据排队。

试想一下–如果生产者和消费者都在该应用程序的同一循环中,为了匹配数据处理速度,数据采集速度就会变慢。这就是按进程、数据采集(生产者)和处理(消费者)对代码进行分解的好处。

网络通信

网络通信需要两个进程同时以不同的速度运行:第一个进程将不断轮询网络线路并检索数据包,第二个进程将提取第一个进程检索的这些数据包并加以分析。在此范例中,第一个进程充当生产者,因为它向第二个进程提供数据,而第二个进程则充当消费者。这时就非常适合使用生产者/消费者设计模式。并行的生产者循环和消费者循环要同时检索和分析网络外数据,两个循环之间的排队通信可以对检索到的网络数据包进行缓存。这种缓冲在网络通信繁忙时就显得非常重要。借助缓存,数据包的检索和传输速度可以超过分析速度。

队列消息处理

排队消息处理器架构是生产者/消费者架构的一个特殊版本。数据队列用于为生产者/消费者设计模式中的循环之间传递数据。这些队列提供了一个优势,即生产者和消费者循环间的数据缓冲。

这是LabVIEW的一个功能介绍,更多的使用方法与开发案例,欢迎登录官网,了解更多信息。有需要LabVIEW项目合作开发,请与我们联系。

http://www.lryc.cn/news/195653.html

相关文章:

  • 成都瀚网科技:如何有效运营抖店来客呢?
  • iMazing2.17.3免费苹果手机备份还原助手
  • sql查询到了数据但是实体类个别字段为null(映射失败)
  • 配置VScode开发环境-CUDA编程
  • openGauss学习笔记-101 openGauss 数据库管理-管理数据库安全-客户端接入之用SSH隧道进行安全的TCP/IP连接
  • STM32如何使用中断?
  • 用于物体识别和跟踪的下游任务自监督学习-2-(计算机视觉中的距离度量+损失函数)
  • 热成像仪的工作原理及在工业设备状态监测中的应用
  • 什么是库存管理?无需Excel,2023年这几款大热库存管理软件你get了吗?
  • c# xml 参数配置表的使用
  • ubuntu20.04 nerf Instant-ngp
  • 隐写术--python隐写
  • MySQL的InnoDB存储引擎中的自适应哈希索引技术
  • 交互设计主要做什么?新手入门必读
  • 【深度学习实验】循环神经网络(三):门控制——自定义循环神经网络LSTM(长短期记忆网络)模型
  • flutter 消息并发时处理,递归查询
  • 第五十八章 学习常用技能 - 查看查询缓存
  • AI 辅助学 Java | 专栏 1 帮你学 Java
  • 2023_Spark_实验十六:编写LoggerLevel方法及getLocalSparkSession方法
  • 彻底搞懂:防止表单重复提交,前端限制还是后端限制?
  • OCPP1.6协议
  • 【数据存储:小端模式和大端模式】
  • 【git】gitlab安装、备份
  • C51--基本认知
  • centos7 安装 mysql 8.0
  • Vue15 计算属性VS监视属性(侦听属性)
  • 快速全面掌握数据库系统核心知识点
  • 学习笔记 | 音视频 | 推流项目框架及细节
  • 拓扑几何学
  • 1.12.C++项目:仿muduo库实现并发服务器之LoopThreadPool模块的设计