labview栈和队列
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)
5:释放队列(当程序结束时,进行清理工作,防止内存泄露)
6:在相反方向插入队列(栈的功能),如果按这种方式插入一定数量,再依次取出,就是上面说的栈的功能。
7:取出元素。如果当前队列中无元素可以提取,该函数会一直等待到TIMEOUT或者有数据为止。
8。清除队列(FLUSH),清除队列中的所有元素。
可见,队列的基本操作是很简单的,关键是如何在实际工作中正确运用。
我们首先用AE封装一个队列:
我们来模拟一下WINDOWS消息,首先定义消息结构。
然后定义AE,封装队列。

下面我们来实验一下这个AE,它可以运行在任何一个VI中,为了方便,我们在一个VI中做三个循环,两个写入队列(生产者),一个读取队列(消费者);
队列的应用范围非常广,经常和状态机联合使用,就是经常提到的队列状态机,有机会我会结合状态机一起介绍。
评论