Am 14. September 2017 haben wir eine überarbeitete Fassung unserer Datenschutzrichtlinie veröffentlicht. Wenn Sie video2brain.com weiterhin nutzen, erklären Sie sich mit diesem überarbeiteten Dokument einverstanden. Bitte lesen Sie es deshalb sorgfältig durch.

C++: Multithreading

Sequenzielle Konsistenz

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Das C++-Speichermodell beschreibt einen Vertrag zwischen dem Programmierer und dem System. Der Standardvertrag ist die sequenzielle Konsistenz.
03:14

Transkript

In dieser Lektion werde ich Ihnen das Standard C++-Spechermodell vorstellen, die sogenannte sequentielle Konsistenz. Die sequentielle Konsistenz ist intuitiv, aber nicht einfach. Intuitiv heißt, sie entspricht unseren Erwartungen. Aber zuerst möchte ich ein bischen ausholen. Das C++-Spechermodell ist an das Java-Speichermodell angelehnt. Tatsächlich waren die Leute, die das Java-Speichermodell implementiert haben, auch beim C++-Speichermodell involviert. Nicht nur Java, nicht nur C++, auch C Sharp hat ein Speichermodell. Das Ganze basiert auf der sequentiellen Konsistenz, das gilt auch für Java und C Sharp. Nur in C++ ist es möglich, die sogenannte sequentielle Konsistenz zu brechen. Im nächsten Buch der sequentiellen Konsistenz verlassen wir das Gebiet der Intuitivität. Aber jetzt zurück zu Grundlagen. Das C++-Speichermodell ermöglicht das synchronisierte Arbeiten mit atomaren Datentypen und mit nicht atomaren Datentypen. Was heißt es? Obwohl die Operationen auf atomaren Datentypen Bedingungen für atomare Datentypen etablieren, gelten diese Bedingungen auch für nicht atomare Datentypen, und damit macht das Ganze Sinn. Hier stelle ich Ihnen aus der relativ oberflächlichen Warte die sequentielle Konsistenz vor. Die sequentielle Konsistenz, wie ich gesagt habe, entspricht unserer natürlichen Intuition. Das heißt, Anweisungen in einem Thread werden in dem Sourcecode-Order ausgeführt. Was heißt das? Genau das hier. Das ist ein Thread 1 und ein Thread 2. Weiter agieren auf atomaren Variablen x und y. Im Thread 1 wird 2000 gespeichert, ein x und y gespeichert, im Thread 2 wird y geladen und dann x geladen. Das 1 und das 2 sind keine atomaren Variablen. Was heißt das? Anweisungen werden in dem Sourcecode-Order ausgeführt, das heißt,, dass in diesem Thread die Anweisung x.store immer bevor y.store stattfindet. Das ist trivial. Sie entscheidet nicht aber, dass dieser Thread 2 die Anweisung in dem Thread 1 immer genau in der gleichen Reihenfolge wahrnimmt, wie es Thread 1 ausführt. Das heißt, auch aus der Sicht von diesem Thread 2 werden die Anweisungen hier in der Reihenfolge x.store y.store ausgeführt. Das ist die sequentielle Konsistenz. Sobald diese Bedingungen nicht mehr gelten, so dass z. B. Thread 2 die Anweisungen von Thread 1 in der anderen Reihenfolge sehen kann, brechen wir die sequentielle Konsistenz. Das ist aber nicht mehr das Standardverhalten. Wir sind hier im Standardverhalten der sequentiellen Konsistenz. Wichtig ist es immer, dass x.store vor y.store und y.load vor x.load stattfindet. Und jetzt müssen Sie einfach die ganzen Möglichkeiten durchpermutieren. In dieser Lektion habe ich Ihnen einen Einblick in die sequentielle Konsistenz gegeben. Die sequentielle Konsistenz ist das Standardverhalten für atomare Datentypen. Und diese sequentielle Konsistenz gilt dann auch für nicht atomare Datentypen.

C++: Multithreading

Lernen Sie die High-Level Threading-Schnittstelle in C++ kennenb und nutzen, die Sie in Form von Threads, Tasks, Locks und Bedingungsvariablen zur Anwendung bringen.

2 Std. 40 min (39 Videos)
Derzeit sind keine Feedbacks vorhanden...
 
Software:
Exklusiv für Abo-Kunden
Erscheinungsdatum:16.08.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!