Hallo zusammen,
ich habe eine Frage, wie man folgendes anders lösen kann:
globale Liste
Task 1 (Thread):
zyklischer Check der kompletten Liste und irgendwelche Aktionen damit machen
Task 2 (Thread):
Löschen und Hinzufügen von Einträgen in der globalen Liste
Es geht hier NICHT um
VCL und Synchronize.
Das ganze kann man mit einer
Mutex machen und bevor jemand mit der globalen Liste etwas machen möchte, wird sich die
Mutex gezogen und nur wenn man diese bekommt (also kein anderer Besitzer vorhanden ist), hat man den Zugriff auf die globale Liste. Das funktioniert und darauf möchte ich auch nicht weiter eingehen.
Ich möchte nur wissen, welche Mechanismen es noch gibt, eine derartige Synchronisation zwischen den Threads zu machen.
Natürlich erledigen die Threads noch andere Aufgaben, dass ist nur eine Teilbeschreibung.
Zum allgemeinen Hintergrund warum das Ganze:
Wenn Task 1 gerade in einer Schleife über alle Items ist und Task 2 gerade Items löscht oder hinzufügt, dann knallt es in Task 1