Einfaches atomares C ++ - Array

9

Ich versuche, ein grundlegendes Array von Objekten mit C ++ 11 Atomics zu verwenden, d. h. unten:

%Vor%

Meine Frage ist, kann die CAS-Operation nur fehlschlagen, wenn ein anderer Thread das Array mit demselben Index verändert? Oder wird die CAS-Operation fehlschlagen, wenn ein Thread versucht, any im Array zu ändern? Letzteres ist das Verhalten, das ich während der Tests zu haben scheint. Wenn ja, gibt es eine bessere Möglichkeit, ein Array zu deklarieren, so dass sich das Ändern einzelner Zellen im Array nicht gegenseitig beeinflusst?

Danke.

    
user3217789 27.01.2014, 11:54
quelle

1 Antwort

1

IIRC atomare Variablen in einer einzelnen Cache-Zeile teilen sich das Locking (auf x86 {, _ 64}).

Also vielleicht das Array erweitern und Variablen an jedem Ende ausprobieren, um das zu testen?

    
Douglas Leeder 27.01.2014 12:29
quelle

Tags und Links