Synchronization VI群功能概述

此為個人在看過Synchronization VI群的example 後的一些心得

請不要對中譯的字面太在意

Notifier:佈告

此vi群的功能是在記憶體中建立一區塊做資料存取。

其動作有點像是黑板或佈告欄,在你刷新資料之前會一直保持原來的內容。

Queue:隊列

同上,也是在記憶體中建立一區塊做資料存取,但其動作方式不同。

如同字面上意思,當有一新的資料輸入時,會接在舊有的資料之後形成一個隊列的狀態。

當提出一筆資料後,該筆資料會從記憶體刪除,後續筆數的資料會往前遞補。

Semaphore:旗號

此vi群的功能為執行順序的管制

假定今天有三個vi分別為 a、b、c 要執行,三隻vi都使用同一台儀器情況下....

如果三隻vi同時執行,勢必會發生因爭奪儀器使用權而導致出錯的狀況。

這時利用Semaphore 建立管制旗號,

當有任一隻vi在執行時,其他的vi必需等候其完成方可動作,避免發生爭奪使用權的狀況

Rendezvous:集合

同上,也是對執行順序的管制,但動作剛好相反

有三隻vi分別做不同的工作,各自花費的時間不同。

欲使早一步完成動作的vi 能夠等候其它晚一步的vi都做完各自的工作,再一起同步執行

這種狀況下即可使用Rendezvous 來完成

Occurrence:事件

此vi群的功能和 event structure 相似,只是寫法不同

它只有三個vi,分別為create、set、wait

執行create會產生一個事件參考代碼,此代碼將為 set 與 wait 所用

執行set時,會依照create所設置的代碼發出事件通知。

此時若wait處於執行狀態將會輸出false,

若超過設定之timeout時間都未收到set 所發出的通知則會輸出ture。

若執行wait 時未設定timeout時間時(即輸入值為 -1),

則wait 會一直等候 set 發出通知時才輸出false 。