LabVIEW中的數據流編程基礎
Visual Basic,C++,JAVA以及絕大多數其它文本編程語言都遵循程序執行的控制流模式。 在控制流中,程序元素的先后順序決定了程序的執行順序。
本文引用地址:http://cqxgywz.com/article/201701/336707.htm圖1顯示了一個數據流編程的范例,程序框圖中兩個數字相加,然后從結果中減去50.00。 在這個范例中,程序框圖從左向右執行,這并非因為對象的放置順序,而是因為“減”函數必須在“加”函數執行完,并將數據傳到“減”法函數后才能執行。 節點只有在所有輸入接線端數據準備好后才能執行,只有在節點完成執行后才能向輸出接線端提供數據。

圖1.數據流編程范例
在圖2中,考慮哪段代碼先執行—“加”、“隨機數”,還是“除”函數。 您無法知道答案,因為“加”和“除”函數的輸入同時可用,而隨機數并沒有輸入。 在一個代碼段必須在另一個前執行,并且兩個函數間沒有數據依賴關系的情況下,可以采用其它編程方法(例如順序結構或錯誤簇)強制設定執行的順序。

圖2.多代碼段的數據流范例
最后補充一下:
如果兩個或兩個以上的線程在同一時間企圖訪問同一個內存 地址,那么將會發生數據沖突。顯然,在應用程序中識別可能產生沖突的代碼是一項艱巨的任務。但是,通過在 LabVIEW中以 圖形化的方式創建程序框圖,用戶可以迅速展開具體工作,并實現自己的構想,而無需考慮線程同步。兩個并行化的圖形代碼段在寫入文件時都需要訪問硬盤,LabVIEW可 以自動地處理這兩個線程的同步。


評論