Frage

Ich habe eine Datenstruktur, der Operationen als Leseoperationen kategorisiert werden (z Lookup) und Schreiboperationen (zum Beispiel Einfügen, Entfernen). Diese Operationen sollen, damit synchronisiert werden:

  • Read-Operationen können nicht ausgeführt werden, während eine Schreiboperation (es sei denn, auf dem gleichen Thread) ausgeführt wird, jedoch Leseoperationen in Bezug auf andere Leseoperationen gleichzeitig ausgeführt werden können.
  • Schreiboperationen können, während nicht ausführen entweder Operationen ausgeführt werden (es sei denn, auf dem gleichen Thread) lesen oder schreiben.

Wie kann diese Art der Synchronisation umgesetzt werden?

Die Plattform ist eine Win-api, so dass die Synchronisation der api Objekte und verriegelte Funktionen sind die grundlegenden Bausteine.

War es hilfreich?

Lösung

Microsoft empfohlenen Implementierung eines Reader / Writer Sperre ist hier (Sie werden ein wenig haben zu blättern, zu dem Header "Reader / Writer Sperren"):

http://msdn.microsoft.com/en-us/library /ms810427.aspx

Als Referenz für diejenigen, die die gleiche Frage haben, aber haben den Luxus von .NET:

http://msdn.microsoft.com/en -US / library / system.threading.readerwriterlock.aspx

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top