全局变量OR数据流,跪求过来人指点!!!

2019-07-17 14:05发布

本帖最后由 羊驼啊 于 2016-11-3 22:58 编辑

关于全局变量编程和数据流编程。
labview里很重要的一个部分就是多线程之间交换数据。不止一本书里提到,要慎用全局变量。理由一般是影响程序阅读以及竞争状态。

我在做的一个测控项目,大概有10几个循环,也就是10几个进程。由于我是第一次写程序,而且参考的是范例里的消息队列状态机架构,因此都是使用队列和通知器来传递数据,一个全局变量都没有用到

但是写了很久很久,现在发现程序越来越繁琐。
有些地方就是简单的主面板的布尔值,子函数里要用,按照当前的框架,需要专门调用某段程序去传一下。如果使用全局变量的话,直接拉过来用就完了,何必这么麻烦。

其他地方也有类似的问题,传递一个状态量,需要一个地方发通知,另一个地方收通知才行。

虽然基本做到了100%数据流编程,可是并没有体会到任何优越感,反而是越来越多的线,越来越多的通知器。

在此跪求各路过来人,请问
①全局变量,是否真的如教程里所述那么差劲,有没有用全局变量来做大型项目的?
②如何取舍,是尽量采用数据流,还是尽量采用全局变量,还是不同地方选择不同的方式?③求推荐一本labview比教高阶的书,不要英文版的。谢谢!
无标题.png


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
9条回答
sushu
1楼-- · 2019-07-17 15:21
 精彩回答 2  元偷偷看……
羊驼啊
2楼-- · 2019-07-17 17:45
sushu 发表于 2016-11-3 23:08
推荐 Labview编程样式,有中文版,看看多引擎那一章,就是状态机的模块化。
全局变量是可以使用的,确保只有一处写入,可以多处读取。
还有,你的这个项目需要10几个循环,倒是挺多的,看图片while循环有点大,会越写越乱。 ...

恩恩,好的,谢谢,我决定配合使用,原来的框架维持不变,毕竟都写好了,后面怎么舒服怎么写,先完成任务再说。。。
ShuiMoLise
3楼-- · 2019-07-17 19:27
全局不是不能用。而是不要滥用。以前看到有人造了200多个全局变量拖慢程序响应速度的。
小小楼
4楼-- · 2019-07-17 23:52
不大懂,求大神帮楼主解说
张筅笙丶
5楼-- · 2019-07-18 05:07
 精彩回答 2  元偷偷看……
羊驼啊
6楼-- · 2019-07-18 07:16
张筅笙丶 发表于 2016-11-4 08:56
全局变量可以使用呀。我使用的动态调用结构,起码几十个全局变量,但是并没有像楼上说的影响速度,全局变量在同时写入的时候需要使用semaphore结构

这个厉害了。这个同步写入,主要意义是什么呀

一周热门 更多>