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++: Speichermodell

Sequenzielle Konsistenz beim Singleton Pattern

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Mit der sequenziellen Konsistenz lässt sich das Double-Checked-Locking-Pattern wohldefiniert implementieren.
02:18

Transkript

In dieser Lektion stelle ich Ihnen das berühmte Double-Checked Locking Pattern des Singleton Patterns vor. Dabei basiert meine Implementierung auf der sogenannten sequenziellen Konsistenz. Woher kommt der komische Name Double-Checked Locking Pattern? Hier habe ich ihn: Double-Check; ich check hier und check hier und locke hier; also Double-Checked Locking. Damit ist der Name geklärt. Jetzt bleibt natürlich die Frage noch offen: Warum gibt es diese Implementierung? Warum verwendet man nicht einfach ein Lock, wie hier? Um sicherzustellen, dass das"new MySingleton" genau nur ein Mal und threadsicher aufgerufen wird. Dann wird es relativ einfach. Dieses Locking hier ist ziemlich teuer, meistens braucht man es aber nicht. Was macht man jetzt? Anstelle auf Verdacht immer teuer zu locken, macht man hier einen einfachen Check; ein Check ist das Singleton, hier Null oder ungleich Null. Wenn es gleich Null ist, dann erst locke ich und um sicherzugehen, muss ich hier nochmal locken, denn hier könnte ja ein anderes Thread reinrutschen. Also, anstelle eines teuren Lockens, mache ich ein billiges Checken hier und um threadsicher zu sein, nochmals hier. Wieso ist das Ganze hier threadsicher? Das Ganze ist threadsicher, weil garantiert ist, dass jedes Thread die Instruktion hier genau in der gleichen Reihenfolge sieht, genauso wie hier. Damit ist sichergestellt, dass die store-Operation hier, wenn es im anderen Thread ausgeführt wird, sofort in einem anderen Thread zur Verfügung steht. Also, in einem anderen Thread wird man diese store-Operation hier, sofort sehen und damit ist klar, dass beim Laden hier, das neu erzeugte Singleton-Objekt sofort zur Verfügung steht. Es kann also nicht passieren, dass mehrere Singletons erzeugt werden, weil die Threads durch die sequenzielle Konsistenz miteinander synchronisiert sind. In dieser Lektion habe ich Ihnen das bekannte Double-Checked Locking Pattern vorgestellt. In diesem Fall habe ich die sequenzielle Konsistenz angewandt, um das Pattern thread-safe zu machen.

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!