LabVIEW建立生产者消费者

这篇具有很好参考价值的文章主要介绍了LabVIEW建立生产者消费者。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

LabVIEW建立生产者消费者

生产者/消费者设计模式由并行循环组成,这些循环分为两类:生产者循环和消费者循环。生产者循环和消费者循环间的通信可以使用队列或通道连线来实现。

队列

LabVIEW内置的队列操作VI可在函数选板>>数据通信>>队列操作( Functions>> Data Communication >> Queue Operations)中找到。

队列基于先进/先出理论。在生产者/消费者设计模式中,队列可以在生产者循环和消费者循环之外初始化。生产者循环为消费者循环生成数据,所以会向队列添加数据(将数据添加到队列中称为“入列”)。

消费者循环将从该队列中删除数据(从队列中删除数据称为“出列”)。因为队列基于先进先出原则,所以消费者总是按照生产者向队列添加数据的顺序对数据进行分析。图1显示如何在LabVIEW中创建生产者/消费者设计模式。

LabVIEW建立生产者消费者,LabVIEW知识,LabVIEW,LabVIEW编程,LabVIEW开发

图1:生产者/消费者设计模式

LabVIEW中提供有关于使用队列的范例,可作为应用程序开发的起点。如果要搜索这些范例,可在LabVIEW范例查找器中搜索“队列”(Queue)。

通道

LabVIEW2016新增了通道连线功能。通道连线可以实现与队列相同的功能。

在队列中,您可以设置队列引用(获取队列)、添加数据(入列)和删除数据(出列),然后关闭队列引用(发布队列);使用通道(Channels)功能,该过程将简化为仅设置数据的Writer和Reader。

有关通道连线和入门模板的更多信息,请参见《LabVIEW帮助文档:使用通道连线在代码的并行部分之间通信数据》

在处理生产者/消费者设计模式时,需要注意一些注意事项,例如,队列的使用和同步。

队列使用

问题: 队列被绑定到特定的数据类型。因此,生产者循环中产生的每个不同数据条目都需要放置到不同的队列中。这可能带来一个问题,那就是增加了程序框图的复杂性。

解决方案: 队列可以接受数组和簇等数据类型。每个数据条目都可以放到一个簇中。这样就会掩盖簇数据类型背后的各种数据类型。

同步

问题: 由于生产者/消费者设计模式并非基于同步,循环初次执行时并不遵循特定的顺序。 因此,在一个循环之前启动另一个循环可能会导致问题。

解决方案: 可以通过将事件结构添加到生产者/消费者设计模式解决这类同步问题。 图2显示了实现这一功能的模板。 

LabVIEW建立生产者消费者,LabVIEW知识,LabVIEW,LabVIEW编程,LabVIEW开发

图2:在生产者/消费者设计模式中使用事件结构

这是LabVIEW的一个功能介绍,更多的使用方法与开发案例,欢迎登录官网,了解更多信息。有需要LabVIEW项目合作开发,请与我们联系。文章来源地址https://www.toymoban.com/news/detail-723038.html

到了这里,关于LabVIEW建立生产者消费者的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 线程同步--生产者消费者模型

    条件变量是 线程间共享的全局变量 ,线程间可以通过条件变量进行同步控制 条件变量的使用必须依赖于互斥锁以确保线程安全,线程申请了互斥锁后,可以调用特定函数 进入条件变量等待队列(同时释放互斥锁) ,其他线程则可以通过条件变量在特定的条件下唤醒该线程( 唤醒后线

    2024年01月19日
    浏览(39)
  • Linux——生产者消费者模型

    目录 一.为何要使用生产者消费者模型  二.生产者消费者模型优点  三.基于BlockingQueue的生产者消费者模型 1.BlockingQueue——阻塞队列 2.实现代码  四.POSIX信号量 五.基于环形队列的生产消费模型 生产者消费者模式就是通过一个容器来解决生产者和消费者的强耦合问题。生产者

    2024年02月08日
    浏览(43)
  • 多线程之生产者消费者

    目的是回顾多线程的几个api 多生产者+多消费者+共享池

    2024年02月07日
    浏览(47)
  • rabbitmq消费者与生产者

    在第一次学习rabbitmq的时候,遇到了许多不懂得 第一步导包 第二步新增生产者 在这里中: connectionFactory.setVirtualHost(\\\"my_vhost\\\");//填写自己的队列名称,如果你的为”/“则填写\\\'\\\'/\\\'\\\' 第三步新增消费者 消息获取成功 注意如果你用的云服务器需要打开这两个端口 5672 15672 如果你使

    2024年02月11日
    浏览(43)
  • 【JavaEE】生产者消费者模式

    作者主页: paper jie_博客 本文作者:大家好,我是paper jie,感谢你阅读本文,欢迎一建三连哦。 本文于《JavaEE》专栏,本专栏是针对于大学生,编程小白精心打造的。笔者用重金(时间和精力)打造,将基础知识一网打尽,希望可以帮到读者们哦。 其他专栏:《MySQL》《C语言》

    2024年02月05日
    浏览(41)
  • kafka生产者消费者练习

    需求:写一个生产者,不断的去生产用户行为数据,写入到kafka的一个topic中 生产的数据格式: 造数据 {“guid”:1,“eventId”:“pageview”,“timestamp”:1637868346789} isNew = 1 {“guid”:1,“eventId”:“addcard”,“timestamp”:1637868347625} isNew = 0 {“guid”:2,“eventId”:“collect”,“timestamp”

    2024年02月08日
    浏览(43)
  • linux:生产者消费者模型

    个人主页 : 个人主页 个人专栏 : 《数据结构》 《C语言》《C++》《Linux》 本文是对于生产者消费者模型的知识总结 生产者消费者模型就是通过一个容器来解决生产者消费者的强耦合问题。生产者和消费者彼此之间不直接通讯,而是通过之间的容器来进行通讯,所以生产者

    2024年04月15日
    浏览(41)
  • SpringCloud深入理解 | 生产者、消费者

    💗wei_shuo的个人主页 💫wei_shuo的学习社区 🌐Hello World ! Spring Cloud是一组用于构建分布式系统和微服务架构的开源框架和工具集合。它是在Spring生态系统的基础上构建的,旨在简化开发人员构建分布式系统和微服务应用程序的过程 SpringCloud生态 Spring Cloud NetFlix Spring Cloud Net

    2024年02月14日
    浏览(26)
  • python rocketmq生产者消费者

    安装依赖包 生产者 需要注意的是假如你用的java SDK 需要只是UNinname 我们可以看到下列代码设置了tag以及key,在页面可以根据key查找消息 消费方式PullConsumer(全部消费)(可重复消费) 消费方式PushConsumer(即时消费)(不可重复消费) 生产者发送消息选择队列,以及设置顺

    2024年02月14日
    浏览(39)
  • 生产者消费者模型 C++ 版

    网上一般教程是使用std::queue,定义消费者 Consumer ,定义Producter类,在main函数里面加锁保证线程安全。 本片文章,实现一个线程安全的队列 threadsafe_queue,只在队列内部加锁。如此可适配,多生产者多消费者的场景 Consumer 头文件 cpp文件 运行结果如下: 优先队列做缓存 头文件

    2024年02月13日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包