Das C ++ - Speichermodell verfügt über entspannte Atomics, die bei Speicheroperationen keine Bestellgarantie bieten. Anders als das Mailbox-Beispiel in C, das ich hier gefunden habe:
Basierend auf dem motivierenden Beispiel in diesem Papier:
Ich war neugierig auf andere Anwendungsfälle für diese Art von Synchronisationsmechanismus.
Ein einfaches Beispiel, das ich häufig in meiner Arbeit sehe, ist ein Statistikzähler. Wenn du
möchte die Häufigkeit zählen, mit der ein Ereignis eintritt, aber keine Art von Ereignis benötigen
Synchronisierung über Threads abgesehen davon, dass das Inkrement sicher ist, mit
memory_order_relaxed
macht Sinn.
In beiden Fällen muss keine stärkere Speicherreihenfolge verwendet werden. Auf einigen Plattformen könnten negative Auswirkungen auf die Leistung haben.
Tags und Links c++ memory-model