C++: Speichermodell

Volatile

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Welche Zusicherungen gelten, wenn die Variablen als volatile deklariert wurden?
02:10

Transkript

In dieser Lektion werde ich Ihnen mein Programm "Sukzessive Optimierung mit volatile Variabeln" vorstellen. Wenn Sie sich das Programm anschauen, dann ist so x wie auch y volatile. Die Frage ist natürlich jetzt, welche Werte für x und y sind hier möglich und ist das Programm wohldefiniert? Um es kurz zu machen, das Programm ist nicht definiert. Warum? volatile hat keine Multi-Threading-Semantik. Das will ich explizit hier betonen, das ist ein absoluter Irrglauben. Was heißt undefiniert? Für das undefinierte Verhalten gibt es in C++ ein gefügeltes Wort: Das Programm hat sogenannte catch-fire-Semantik. Das heißt, es kann alles passieren, selbst der PC kann in Rauch aufgehen. Ich will gern noch ein bisschen weiter auf den Punkt volatile vs. atomic eingehen. Es ist eine sehr, sehr ungünstige Namenskollision, dass Java volatile dem C++ atomic entspricht. Daher kommt vermutlich auch, dass viele volatile mit atomar gleichsetzen, was aber nicht stimmt. Was ist std::atomic? Bei std::atomic geht es um die Schutz der Daten vor gemeinsamem Zugriff mehrerer Threads. Was ist volatile? Das Schlüsselwort volatile in C++. Da geht es um Zugriff auf speziellen Speicher, auf dem Lese- und Speichoperationen nicht optimiert werden dürfen. In der Regel wird das in der embedded-Programierung verwendet, um Speicher auszuzeichnen, der außerhalb des Kontrollflusses verändert werden kann, weil er zum Beispiel mit einem externen Device verbunden ist. Was bewirkt volatile? volatile bewirkt, dass Aktionen, die auf diesem Speicher ausgeführt werden, nicht zwischengepuffert werden, sondern direkt in den Main-Speicher, in den Hauptspeicher geschrieben werden. In dieser Lektion habe ich Ihnen das Programm Sukzessive Optimierung mit volatile vorgestellt. Der entscheidende Punkt ist, volatile hat keine Multi-Threading-Semantik in C++.

C++: Speichermodell

Verstehen und nutzen Sie die Konzepte und die zugrundeliegenden TEchnolgien des Speichermodells in C++.

1 Std. 29 min (29 Videos)
Derzeit sind keine Feedbacks vorhanden...
Software:
Exklusiv für Abo-Kunden
Erscheinungsdatum:24.11.2016

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!