微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 测试测量 > 虚拟仪器 > labview中的并行

labview中的并行

时间:12-13 整理:3721RD 点击:
两个while循环,各放一个wait 1ms的时钟,并列放在labview的框图中,labview是怎么执行这两个循环的?
第一种方式:
执行循环1,wait 1ms,然后循环2,wait 1ms,然后循环1,wait 1ms,如此往复.
第二种方式
执行循环1,几乎与此同时,执行循环2.大约wait 1ms之后.循环1,2再几乎同时执行,如此往复.

不可预测吧
编程最好不要依赖并行线程的执行次序
非要依赖的话用顺序结构好了

我想要类似并行的结构.
循环1,2同时开始,同时结束.循环1循环频率是1kHz,循环2循环频率1Hz.

不如放到同一循环里?

有个timed loop看看能不能用?
没怎么用过这个东西

应该是没可能同时开始的
从微观来说肯定是顺序的,而且顺序不可测; 除非用双核的有可能

This is the right way to go. Synchronize two timed loops would give you quite accurate timing.

timed loop如何实现同步呢?
我一直以为在两个循环之间随便扯上一根线是同步的不二法门……

线程同步也可以用信号量来实现,labview里面的semi**就是
了解一点TROS的知识就知道了

不了解!你讲!

线程A和B,B要和A同步,A里面来个信号量Semi,先赋1,B发现Semi为1就等待,A把需要同步的数据赋值完了,就给Semi赋0,B发现Semi为0就继续运行下去。简单说就是这样,不过RTOS里面更复杂

我还纳闷TROS是啥呢……呵呵

手误。。。

阿,这还不如牵根线来的简单

呵呵,你看看要同步的线程多了或者同步的地方多了的话,那个方便吧

这个只是叫做 “解决了race condition”,跟同步运行 …… 不一样吧

上core duo 2

那同步运行还有啥要求呢?除了要解决对资源使用以及运行步骤的问题,还有啥需要呢?

都用semaphore了,两个任务分明就是异步进行的,一定要说应该是实现了real time,跟同步异步没啥关系

所谓线程同步就是这样啊,无关的部分随便异步就好了,等到需要的地方大家互相等一下,然后再出发。只要在规定的时间里完成了规定的操作,也就可以认为是同步了,本来在顺序执行的CPU上就没有同步这个概念。。。。

双cpu

你还得问问OS他们是不是同步的

windows下?啥也不说了

It is quite straightforward to synchronize two timed loops using LV's built-in functions. Please see the example. If you search this topic at www.ni.com, I believe you can find more useful information.
Best,

 1410.vi

建议看一下Gray的书,里面详细讨论过

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top