這篇介紹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文章:

進階程式學習

基礎程式學習

專題學習_LVOOP

專題學習_動態載入

程式分享相關LabVIEW文章:

基礎程式分享

進階程式分享

股票程式分享

考取LabVIEW證照相關:

CLAD

CLD

CLA準備CLA考題分析

arrow
arrow
    創作者介紹
    創作者 安伯伯 的頭像
    安伯伯

    安伯伯軒

    安伯伯 發表在 痞客邦 留言(1) 人氣()