erden atomare Operationen andere Threads blockiere

Ich versuche, das Konzept "Atomic vs Non Atomic" in meinem Kopf zu verankern. Mein erstes Problem ist, dass ich keine "echte Analogie" dazu finden konnte. Wie Kunden / Restaurant-Beziehung über atomare Operationen oder ähnliches.

Auch ich möchte erfahren, wie sich atomare Operationen in der threadsicheren Programmierung positionieren.

In diesem Blogbeitrag;http: //preshing.com/20130618/atomic-vs-non-atomic-operations es wird erwähnt als:

Eine Operation, die auf den gemeinsam genutzten Speicher angewendet wird, ist atomar, wenn sie im Vergleich zu anderen Threads in einem Schritt ausgeführt wird.Wenn ein atomarer Speicher für eine gemeinsam genutzte Variable ausgeführt wird, kann kein anderer Thread die Änderung als halb abgeschlossen betrachten.. Wenn eine gemeinsam genutzte Variable atomar geladen wird, wird der gesamte Wert so gelesen, wie er zu einem bestimmten Zeitpunkt angezeigt wurde. Nichtatomare Ladungen und Speicher geben diese Garantie nicht ab.

Was bedeutet "kein anderer Thread kann die Änderung als halb vollständig betrachten"?

Das bedeutet, dass der Thread wartet, bis die atomare Operation abgeschlossen ist? Woher weiß dieser Thread, dass diese Operation atomar ist? Zum Beispiel in .NET kann ich verstehen, wenn Sie das Objekt sperren, setzen Sie ein Flag, um andere Threads zu blockieren. Aber was ist mit Atom? Woher kennen andere Threads den Unterschied zwischen atomaren und nichtatomaren Operationen?

Auch wenn die obige Aussage wahr ist, sind alle atomaren Operationen threadsicher?

Antworten auf die Frage(10)

Ihre Antwort auf die Frage