Ich kann über Gründe nachdenken, wenn es keine Rolle spielt, und eine Situation, in der Sie sie NICHT verwenden möchten, wenn Sie ein Design auf Verhalten mit nicht-atomaren Operationen testen möchten.Wann NICHT Atomic Operations verwenden?
Was sind andere Gründe? Insbesondere arbeite ich an einem Projekt mit seltenen Rennbedingungen, da ein Test keine atomaren Inkremente verwendet. Ich frage mich, warum sollte ich nicht immer atomare Inkremente verwenden, wenn eine Funktion dafür existiert?
Danke!
Lassen Sie mich Ihre Frage auf Sie richten. Wenn Sie Ihr Programm so schreiben, dass Worker als neue * Prozesse * und nicht als neue * Threads * ausgegeben werden, müssen Sie sich keine Gedanken über atomare Aktualisierungen des Shared Memory machen, da Prozesse keinen Speicher freigeben. Anstatt zu fragen, warum nicht immer atomare Operationen verwenden? Wäre es nicht sinnvoll, stattdessen zu fragen, warum nicht immer Prozesse statt Threads ** verwenden? –
Interessanter Punkt, nehme ich an, das Problem ist die gleiche Sache wie warum Atom nicht zu verwenden, Ressourcen wie Speicher/Geschwindigkeit sind begrenzt. –