Design Pattern #6- Producer/Consumer

L’applicazione è formata da due cicli paralleli, il primo ciclo chiamato Produttore ha quindi il compito di produrre dati per secondo ciclo consumatore.

Producer/Consumer Design Pattern

Nello scorso articolo abbiamo visto la QSM, oggi vedremo la Producer/Consumer Design Pattern

Il Producer/Consumer Design Pattern è un modello di progettazione tra i più utilizzati, ti permette di eseguire codice  condiviso tra due loop paralleli chiamati Produttore e Consumatore, a velocità differenti.

Per compensare la differenza di velocità, i dati vengono memorizzati in un Buffer chiamato FIFO (Firts In Firts Out), che regola il flusso di dati.

Quando esistono più processi in esecuzione a velocità diverse, la comunicazione bufferizzata tra i processi è estremamente efficace.

Esempio: Un’ applicazione è composta da due processi, il primo elabora dati per il secondo a una velocità doppia, verrà utilizzata l’architettura Producer/Consumer.

L’applicazione è formata  da due cicli paralleli, il primo ciclo chiamato Produttore ha quindi il compito di produrre dati per secondo ciclo consumatore.

All’ interno dell’ applicazione sono usate le funzioni base delle code, nessun dato è perso.

L’approccio del modello produttore / consumatore a questa applicazione consiste nel mettere in coda i dati nel ciclo del produttore e far sì che l’elaborazione effettiva sia eseguita nel ciclo del consumatore.

Esempio: Per il caso Exit, verrà incodato il messaggio di uscita nel loop producer, e il consumer eseguirà poi l’evento associato ad esso.

In conclusione si può affermare che questo tipo di modello di progettazione rimane sicuramente tra quelli più utilizzati all’ interno di applicazioni complesse, che necessitano di compiere multiple operazioni allo stesso tempo, come l’aquisizione e la scrittura di dati, iterando ognuna individualmente.

Potrebbe interessarti anche

Refactoring in LabVIEW.

Il refactoring in LabVIEW è un processo di ristrutturazione di codice, funzionante correttamente, con lo scopo di renderlo leggibile, manutenibile ed espandibile.

Malleable VI

I VIM o VI malleable, sono Vi polimorfi sul dato. Sono da tenere in considerazione nella creazione delle proprie API.

Variabili Locali e Globali

Local e Global Variable sono utili, facili da implementare, ma attenzione a non abusarne. In questo articolo cerchiamo di vederne l'utilizzo migliore, almeno dal nostro punto di vista.

Manutenzione predittiva: significato e obiettivi

Cosa significa svolgere manutenzione predittiva? Effettuare interventi mirati sui macchinari, per prevenire i guasti con largo anticipo.

WATS e OEE

WATS ha migliorato una delle sue features più importanti: l’OEE. Il focus sulla produttività è una sfida costante per le imprese, non di meno in un settore competitivo come quello della manifattura elettronica.

La manutenzione predittiva

Manutenzione predittiva per intervenire sul macchinario prima che si guasti. Fermi di produzione evitati, riduzione costi e pianificazione interventi.