0

Die Win32 Interlocked-Funktionen bieten eine Möglichkeit für atomare Operation auf Daten. Sie sollen Thread-sicher und Multiprozessor-sicher sein.Interlocked Operation auf nicht definierten Daten

Was passiert, wenn die Daten nicht ausgerichtet sind? die verriegelten Operationen sind immer noch atomar? Beispiel: Inkrementieren einer Ganzzahl, die nicht ausgerichtet ist.

Ty

Antwort

1

Wenn Sie die meisten der Sperrungs API-Funktionen lesen, gibt es Hinweise, dass etwas entlang der Linien von angeben:

„Die Variable Parameter von der Summand darauf muss auf einem 32- ausgerichtet werden Bit-Grenze; ​​andernfalls verhält sich diese Funktion unvorhersehbar auf Multiprozessor-x86-Systemen und beliebigen Nicht-x86-Systemen. Siehe _aligned_malloc. "

Für ein Beispiel siehe MSDN doc.

Dies bedeutet im Grunde, dass Sie Ihre Daten mit _aligned_malloc auf korrekte Ergebnisse ausrichten müssen.

Verwandte Themen