加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

关于labview的队列的简单领悟

(2013-03-20 21:24:02)
分类: Labview
    无意中发现,labview中的队列在编程中简约且实用。用白话描述一下队列就是:创建一个栈,先入先出的栈,通过元素如队列将该元素压进栈,通过元素出队列将元素弹出。同时,可以设置队列的大小,当队列满的时候,协调队列的输入和输出,让输入(也就是元素如队列)等待,直到出现了存储空间,才执行输入。
    下面是队列的函数,包括:
http://s1/mw690/0414b736gd864d02682d0&690
    我们看一个典型应用:(这个是labview帮助里面的例子)
http://s4/mw690/0414b736gd864da2fc653&690

http://s10/mw690/0414b736gd864da222509&690
    前面产生一个随机数,压进队列,后面的循环从队列中读出元素。这两个循环可以设置不同的循环时间。
当入队列的时间快于出队列的时间,队列很快就会满掉,此时,队列调节入队列循环等待,当有空间时,执行如队列循环。当入队列时间小于出队列时间时,后一个循环等待队列中存在元素时,才能够读取元素(元素出队列)。
t入
反之:
队列先解释道这了。
我现在就想试试字符串是不是可以压进队列,同时读出来会是什么样子。下面的实验就是:
我谢了这样的一段代码,是想让字符串输入队列再读出来。框图如下:
http://s11/mw690/0414b736gd865847e189a&690
发现这段代码执行不下去。一直在执行但是不能结束。
经过分析,我认为是这样的:由于我把队列的大小设置成为2,而我需要雅茹三个元素,所以,必须等待有一个元素被读取之后,才能将第三个元素压进去。而我设计的这个程序有问题,问题在于:我的后一个循环的队列引用是从第一个循环传过来的,第一个循环没执行完,那么第二个循环就无法执行。但是第一个循环要想结束,必须需要将第三个元素压入,但是条件是第二个循环读出来一个元素。他们互相限制,自然就死循环了。
于是把程序框图改成:
http://s1/mw690/0414b736gd86592457ae0&690
队列引用菜前面直接引过来,就不会出现这样的问题。并且所有的三个元素没有丢失。能够全部压进队列并被独取出来。
另外:如果设置的是字符串的话,确实是以字符串为单位的。压入的时候什么样子,读出来就是什么样子。就像一个字符串数组一样。

OVER

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有