Einzelnen Beitrag anzeigen

Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.743 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Synchronisierung zwischen Threads ohne Mutex

  Alt 28. Jan 2025, 12:14
Wenn es um einfache Benutzerbarkeit geht, gibt es System.Generics.Collections.TThreadList<T>, die das Locking intern über TMonitor regelt.

Wie oft passieren denn Lese- und Schreibzugriffe? Wenn Schreibzugriffe im Vergleich deutlich seltener als Lesezugriffe sind (die ja nicht gegenseitig synchronisiert werden müssen, solange kein Schreibzugriff passiert), gibt es System.SyncObjs.TLightweightMREW, das für diesen Fall sehr performant ist. Das sorgt dafür, dass jeder lesen kann wie er möchte, aber ein Schreibzugriff nur exklusiv passiert.

Ich habe die Formulierung aufgrund von Peters Hinweis angepasst. Und natürlich muss man bei TLightweightMREW auch einen logischen Lesezugriff komplett absichern. Wenn der also in einem Block mit einer Schleife passiert, muss man den Block insgesamt als Lesezugriff absichern.
Sebastian Jänicke
AppCentral

Geändert von jaenicke (28. Jan 2025 um 13:50 Uhr)
  Mit Zitat antworten Zitat