Einzelnen Beitrag anzeigen

Benutzerbild von sx2008
sx2008

Registriert seit: 15. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#7

AW: Zugriff mehrerer Threads aufeinander

  Alt 14. Jun 2013, 12:22
taufgabensorte1 ließt sekündlich Daten aus etwa 50 Geräten von Typ 1 aus
...und sichert die Daten in eine Queue.
taufgabensorte2 macht genau das gleiche mit etwa 10 Geräten von Typ 2
Eine weitere Queue für die Empfangsrichtung.
Wenn jetzt bestimmte Daten aus einem der Geräte von Typ 1 gelesen wurden, sollen diese in ein (oder auch mehrere) definierte(s) Gerät(e) von Typ 2 geschrieben werden. Also sollte dann in die Aufgabenliste des jeweiligen Threads geschrieben werden
Da haben wir dann nochmal 2 weitere Queues für die Senderichtung.

Du brauchst also threadsichere Queues (first-in-first-out).
Hierzu könnte man die Klasse TThreadList verwenden.
Das Grundgerüst sieht so aus:
Delphi-Quellcode:
TThreadObjectQueue = class(TObject)
private
  FList : TThreadList;
public
  constructor Create;
  destructor Destroy;override;
  procedure Push(value:TObject);
  function Pop:TObject;
  function IsEmpty:Boolean;
  property Count:Integer read GetCount;
end;
Die Daten sind bei dir anscheinend nur Strings.
Ich würde empfehlen jeden Datensatz in einem Objekt zu speichern.

Die beiden Threads mit ihren Empfangs- und Sendequeue bilden jeweils einen Actor.
fork me on Github

Geändert von sx2008 (14. Jun 2013 um 12:30 Uhr)
  Mit Zitat antworten Zitat