這篇介紹Producer/Consumer是什麼、應用時機和範例使用。Producer/Consumer 設計模式以 Master/Slave 模式為基礎,旨在增強以不同速率運行的多重迴路之間的數據共享。與標準的Master/Slave設計模式一樣,Producer/Consumer 模式用於分解以不同速率生成和使用數據的進程。
如果覺得文章有幫助,請不要吝嗇按下側邊的廣告唷~ 謝謝~
使用Producer/Consumer的時機是要處理多個流程時候,同時每項程序又有迭代效應(前後影響、依序執行)。
使用這種模式的好處是在每個應用程序之間,擁有Queue做緩衝通信,當有多個進程以不同的速度運行時,進程之間的緩衝通信(Queue)是非常有效率的辦法。例如,一個應用程序有2個回圈。第一個迴圈執行數據採集,第二個迴圈取得該數據並將其放置在網絡上。第一道迴圈的速度是第二迴圈的三倍。如果Producer/Consumer設計模式用於實施這個應用程序,數據採集過程將作為Prosucer,網絡處理為消費者(Consumer)。通過足夠大的Queue(緩衝區),Consumer可以依序處理網路數據的上載動作,這種緩衝數據的能力將使數據丟失最小化。
下面使用圖檔來做解釋:
Producer用較快的處理,Consumer為較慢的應用
簡而言之,總結: Producer/Consumer建議使用在兩個Loop有時間差的應用,舉例(1)Producer相機快速的照相,Consumer慢速存檔 (2)Producer快速資料擷取,Consumer慢速人機整理呈現...等。
Producer /Consumer 架構可以直接New...-->From Template-->Producer/Consumer Design Pattern中呼叫既有的模板來使用。
LabVIEW 內建的模板有兩種,
一種是使用單純資料在Producer/Consumer中傳遞的Data類
另外一種是搭配Event強調人機互動的偵測(Event)。
如果覺得文章有幫助,請不要吝嗇按下側邊的廣告唷~ 謝謝~
學習相關LabVIEW文章:
程式分享相關LabVIEW文章:
考取LabVIEW證照相關:
留言列表