Das code-Beispiel, die sich als "volatile" deklarieren sollte verwendet werden

Derzeit kann ich nicht verstehen, wenn wir volatile zum deklarieren von Variablen.

Ich habe zu tun einige Studie und suchte einige Materialien über die für eine lange Zeit und weiß, dass, wenn ein Feld deklariert ist flüchtig, der compiler und die Laufzeit werden auf beachten Sie, dass diese variable geteilt wird, und dass Operationen sollten nicht nachbestellt werden mit anderen Speicher-Operationen.

Aber ich kann immer noch nicht verstehen, in welches Szenario wir sollten Sie nutzen. Ich meine, kann jemand irgendwelche Beispiel-code, die nachweisen können, dass die Verwendung von "volatile" - bringt nutzen oder Probleme zu lösen, zu vergleichen, um ohne es zu benutzen?

  • volatile (und viele andere concurrency-Aspekte) sind sehr schwer zu beweisen, denn wenn du diese falsch, dann kann Sie immer noch erscheinen, um korrekt zu arbeiten und nicht ein problem, bis zu einer ganz bestimmten Bedingung Auftritt, und führt zu einem problem.
  • Ich habe versucht, diese selbst und produziert eine Prüfung, die übergabe von Werten zwischen Gewinde mit einem nicht-voltile Feld eine Milliarde mal erfolgreich, jedoch schlägt relativ schnell, wenn es die gleiche box ist geladen. Auch das timing der performance-Auswirkungen flüchtiger wird sehr schwierig werden, es hängt von vielen Faktoren ab.
  • Haben Sie einen Blick auf diese post: stackoverflow.com/questions/7855700/...
InformationsquelleAutor Eric Jiang | 2011-04-28
Schreibe einen Kommentar