新闻中心

EEPW首页 > 测试测量 > 设计应用 > labview栈和队列

labview栈和队列

作者: 时间:2017-01-09 来源:网络 收藏



max queue size:I32

定义的队列的最大长度,当输入-1时,队列长度不受限制,需要注意的是,如果取出数据的速度小于加入队列数据的速度,随着时间的推移,需要的内存会不断地增加,这显然是存在问题的,如果我们没有规定最大长度的话,编程时候要注意自己来协调速度。如果规定的最大长度,当达到最大长度时候,加入队列的线程会一直等待到队列中有空闲位置为止。

本文引用地址:https://www.eepw.com.cn/article/201701/337150.htm

如果已经有同名队列存在,该设置是不起作用的,用的还是第一次运行这个函数时的设置。


element data type:队列中的数据类型,允许任意数据类型。
其它两个非常简单,不介绍了。

2:元素加入队列(Enqueue Element)

3:预览要出队的元素(读,并不取出)

4:取得队列当前状态( Get Queue Status)

这个函数比较重要,它可以获得当前队列的状态信息,包括队列最大长度(设定的),队列名称,当前正在运行的等待取出数据的(运行DEQUEUE)的数量,当前正在运行的加入队列的数量(ENQUEUE),以及当前队列中的所有数据。

5:释放队列(当程序结束时,进行清理工作,防止内存泄露)

6:在相反方向插入队列(栈的功能),如果按这种方式插入一定数量,再依次取出,就是上面说的栈的功能。

对于队列,这个函数可以人工实现队列优先级,最重要的信息可以放在其他不重要的信息前面,比如严重错误,紧急停止等。

7:取出元素。如果当前队列中无元素可以提取,该函数会一直等待到TIMEOUT或者有数据为止。

8。清除队列(FLUSH),清除队列中的所有元素。


可见,队列的基本操作是很简单的,关键是如何在实际工作中正确运用。

我们首先用AE封装一个队列:

我们来模拟一下WINDOWS消息,首先定义消息结构。



然后定义AE,封装队列。





下面我们来实验一下这个AE,它可以运行在任何一个VI中,为了方便,我们在一个VI中做三个循环,两个写入队列(生产者),一个读取队列(消费者);


队列的应用范围非常广,经常和状态机联合使用,就是经常提到的队列状态机,有机会我会结合状态机一起介绍。


上一页 1 2 下一页

关键词: labview栈队

评论


技术专区

关闭