C++: Speichermodell

Abstufungen des Vertrags

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Den Vertrag zwischen dem System und dem Programmierer existiert in drei Abstufungen. Lernen Sie hier mehr über die single-threaded, die Multithreading- und die lock-freie Ausführung.
03:14

Transkript

Welche Abstufungen des Vertrags gibt es? Genau diese Frage will ich in dieser Lektion beantworten. Der Vertrag geht von "streng" nach "locker". Was heißt das? Je strenger Sie den Vertrag anwenden, desto weniger Optimierungspotenzial besitzt das System. Das Gegenteil gilt natürlich, wenn Sie den Vertrag extrem locker anwenden. Was heißt "streng"? "Streng" heißt in erster Annäherung, Sie haben erstmal ein Singlethreaded-Programm. In diesem Fall gibt es einen Kontrollfluss und das System hat relativ wenige Möglichkeiten zu optimieren. In der zweiten Stufe des Vertrages beschäftigen Sie sich mit Threads. Sie haben mindestens zwei Threads, Sie haben also ein Multithreading-Programm. In diesem Fall wenden Sie Tasks, Threads und Bedingungsvariablen an, die sogenannte High-Level-Threading-Schnittstelle. Die dritte Abstufung des Vertrages basiert auf atomaren Variablen und auf Operationen auf diesen atomaren Variablen. Per Default gilt hier die sogenannte "Sequenzielle Konsistenz". Sie können aber auch das C++-Speichermodell "Acquire-Release-Semantik" oder die "Relaxed-Semantik" anwenden. Jetzt will ich nochmal das Diagramm mit Ihnen von oben bis unten durchgehen und Ihnen zeigen, welche Auswirkungen der Vertrag auf Ihr Programm hat. Erstens: Je weiter runter Sie in dem Vertrag gehen, also von "streng" nach "locker", desto mehr Optimierungspotenzial besteht für das System. Natürlich steigt auch die Komplexität. Ich mache die Komplexität eines Programms oder eines Multithreading-Programms gerne daran fest, wie viele mögliche Kontrollflüsse Sie haben. Wenn Sie ein Singlethreaded-Programm haben, haben Sie nur einen Kontrollfluss, bei [einem] Multithreaded-Programm werden es schon mehrere sein und bei atomaren Variablen explodiert die Anzahl der Kontrollflüsse und damit auch die Komplexität. Was auch klar ist, je weiter Sie sich von der strengen Auslegung des Vertrags entfernen, desto mehr bewegen Sie sich in dem Gebiet für Domänenexperten. Das heißt, Ihr Programm wird zunehmend komplexer. Das macht sich ganz einfach daran fest, sobald sie sich mit atomaren Variablen beschäftigen, betreten Sie Gebiet, in dem der Bruch der Intuition gilt. Was meine ich damit? Das Programm verhält sich nicht so, wie Sie glauben, wie es sich verhalten sollte. Das trifft insbesondere dann zu, wenn Sie sich mit der "Acquire-Release-Semantik" oder mit der "Relaxed-Semantik" beschäftigen. Ihr Fokus wechselt auch vollkommen. Während Sie sich auf obere Ebene, bei der strengen Auslegung des Vertrags, mit dem ganzen Programm beschäftigen und versuchen, das ganze Programm zu optimieren, werden Sie, wenn Sie [sich] mit atomaren Variablen beschäftigen, [sich] nur noch kleine Aspekte des Programms anschauen und versuchen, die zu optimieren, weil es unmöglich ist, ein ganzes Programm auf atomaren Variablen basieren zu lassen. In dieser Lektion habe ich Ihnen einen Überblick über die Abstufungen des Vertrags gegeben. Der Vertrag, der von "streng" nach "locker" geht und in dem Sie die Regeln festlegen, nach denen das System optimieren darf.

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!