labview 多线程同步

所谓通讯的同步是指多个线程同时进行或严格按照顺序执行,数据的严格性是指发送多少数据接收多少数据,不能出现数据丢失或重复接收的现象。

labview的同步机制有事件发生、集合点、通知器、信号量

可以这么来记忆:事急(集)通信

1.事件发生

labview 多线程同步_第1张图片labview 多线程同步_第2张图片

 图1-事件发生例子的前面板和程序框图

从前面板可以看出已经出现了不同步情况,因为线程1所在循环耗时长。

而且,在采集开关没有on,会先采集一次。

这是极端情况,有时也是可以用的。

2.集合点

labview 多线程同步_第3张图片labview 多线程同步_第4张图片

 

 图2-集合点例子的前面板和程序框图

从前面板可以看出,严格同步,线程1和线程2采集次数一样的。

必须要等采集开关on时,才开始采集。

集合点能实现严格同步

3.通知器

labview 多线程同步_第5张图片labview 多线程同步_第6张图片

 图3-通知器的前面板和程序框图

从上图可以看出,线程1和线程2出现了不同步现象。

必须要等采集开关on时,才开始采集。

 4.信号量

labview 多线程同步_第7张图片

图4 信号量例子的前面板

 labview 多线程同步_第8张图片

 

 图5-信号量例子的程序框图

由前面板可看出,两个线程中的一个先采集100次,然后另外一个线程再采集100次,然后结束,

实现了有限资源的合理利用。

限制可以同时取用共享(受保护)资源的任务数量方法。

比如多线程对1个文件写、同一串口的写操作的情况,都可利用信号量。

参考链接如下:

事件发生:

https://download.csdn.net/download/weixin_39926429/87904328

集合点:

https://download.csdn.net/download/weixin_39926429/87914061

通知:

https://download.csdn.net/download/weixin_39926429/87904329

信号量:

https://download.csdn.net/download/weixin_39926429/87914064

你可能感兴趣的:(labview,测控,labview)