LabVIEWForum.de
Erzeuger/Verbraucher Schleife mit mehreren Verbrauchern - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Erzeuger/Verbraucher Schleife mit mehreren Verbrauchern (/Thread-Erzeuger-Verbraucher-Schleife-mit-mehreren-Verbrauchern)



Erzeuger/Verbraucher Schleife mit mehreren Verbrauchern - LV-Fred - 25.05.2012 10:21

Hallo Leute,

Ich möchte mit einer Queue die Enumbefehle a b c und d zu meiner Verbraucherschleife übertragen. Ist es möglich, mit dieser einen Queue auch mehrere Schleifen zu steuern? - Also z.B. Schleife 1 reagiert auf die Befehle a und b und schleife 2 reagiert auf die Befehle c und d.

Oder müsste ich dann für jede weitere Verbraucherschleife eine eigene Queue erstellen?

Danke und Gruß


RE: Erzeuger/Verbraucher Schleife mit mehreren Verbrauchern - abrissbirne - 25.05.2012 11:18

Jede Schleife benötigt eine eigene Message-Queue.


RE: Erzeuger/Verbraucher Schleife mit mehreren Verbrauchern - Lucki - 25.05.2012 12:42

Es gibt da einen wichtigen Unterschied zwischen Queues und Meldern. Bei Queues löscht der Verbraucher das Element: deshalb kann es nur ein Mal "verbraucht" werden. Anderes bei Meldern: Der Erzeuger löscht das alte Element mit Überschreiben eines neuen; das Element kann damit von mehreren Verbrauchern gelesen werden.
Es kommt darauf an, ob deine Datenrate so schnell ist, daß Du auf den Zwischenpuffer angewiesen bist, den der Melder naturgemäß nicht haben kann.
Und nicht vorschnell sagen, beim Melder gehen Daten verloren oder können doppelt gelesen werden. Es gib da ausgeklügelte Methoden für Handshaking und Synchronisation.


RE: Erzeuger/Verbraucher Schleife mit mehreren Verbrauchern - LV-Fred - 30.05.2012 08:26

Danke für die Antworten. Ich werde es mal mit den Meldern testen...

Viele Grüße

LV-Fred


RE: Erzeuger/Verbraucher Schleife mit mehreren Verbrauchern - Kiesch - 08.06.2012 15:58

Prinzipiell ist es natürlich möglich das mit Queues zu machen. Vorschau entnimmt ein Element nicht, aber kriegt trotzdem die Daten davon. Dann kann der Verbraucher checken ob er gemeint ist oder nicht. Der Nachteil dabei ist lediglich, dass die Schleife das im schlimmsten Fall recht oft machen muss bevor das eigentliche Ziel das endlich entnimmt. Dazu kommt außerdem natürlich, dass die Abarbeitungsgeschwindigkeit für alle Verbraucher durch die anderen Verbraucher beschränkt wird (im schlimmsten Fall kann ein Verbraucher das ganze System ausbremsen, weil er seine Elemente nicht schnell genug entnimmt).

Aber wie gesagt: An sich kann man so eine Architektur aufbauen... Es hat nur einiges an Problemen die nicht wirklich "schön" gelöst werden können.