代理记账一般多少钱一个月,搜索引擎优化网页,wordpress投稿者个人资料,重庆网络营销与网络广告LabVIEW建立生产者消费者
生产者/消费者设计模式由并行循环组成#xff0c;这些循环分为两类#xff1a;生产者循环和消费者循环。生产者循环和消费者循环间的通信可以使用队列或通道连线来实现。
队列
LabVIEW内置的队列操作VI可在函数选板数据通信队列操…LabVIEW建立生产者消费者
生产者/消费者设计模式由并行循环组成这些循环分为两类生产者循环和消费者循环。生产者循环和消费者循环间的通信可以使用队列或通道连线来实现。
队列
LabVIEW内置的队列操作VI可在函数选板数据通信队列操作( Functions Data Communication Queue Operations)中找到。
队列基于先进/先出理论。在生产者/消费者设计模式中队列可以在生产者循环和消费者循环之外初始化。生产者循环为消费者循环生成数据所以会向队列添加数据将数据添加到队列中称为“入列”。
消费者循环将从该队列中删除数据从队列中删除数据称为“出列”。因为队列基于先进先出原则所以消费者总是按照生产者向队列添加数据的顺序对数据进行分析。图1显示如何在LabVIEW中创建生产者/消费者设计模式。 图1生产者/消费者设计模式
LabVIEW中提供有关于使用队列的范例可作为应用程序开发的起点。如果要搜索这些范例可在LabVIEW范例查找器中搜索“队列”(Queue)。
通道
LabVIEW2016新增了通道连线功能。通道连线可以实现与队列相同的功能。
在队列中您可以设置队列引用获取队列、添加数据入列和删除数据出列然后关闭队列引用发布队列使用通道(Channels)功能该过程将简化为仅设置数据的Writer和Reader。
有关通道连线和入门模板的更多信息请参见《LabVIEW帮助文档使用通道连线在代码的并行部分之间通信数据》
在处理生产者/消费者设计模式时需要注意一些注意事项例如队列的使用和同步。
队列使用
问题 队列被绑定到特定的数据类型。因此生产者循环中产生的每个不同数据条目都需要放置到不同的队列中。这可能带来一个问题那就是增加了程序框图的复杂性。
解决方案 队列可以接受数组和簇等数据类型。每个数据条目都可以放到一个簇中。这样就会掩盖簇数据类型背后的各种数据类型。
同步
问题 由于生产者/消费者设计模式并非基于同步循环初次执行时并不遵循特定的顺序。 因此在一个循环之前启动另一个循环可能会导致问题。
解决方案 可以通过将事件结构添加到生产者/消费者设计模式解决这类同步问题。 图2显示了实现这一功能的模板。 图2在生产者/消费者设计模式中使用事件结构
这是LabVIEW的一个功能介绍更多的使用方法与开发案例欢迎登录官网了解更多信息。有需要LabVIEW项目合作开发请与我们联系。