C++: Multithreading

Überblick über Locks

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Die Locks lock_guard und unique_lock verwalten den Lebenszyklus ihres Mutex und erlauben den sicheren Umgang mit Mutexen.
02:20

Transkript

In dieser Lektion möchte ich Ihnen Überblick über Locks geben. Es gibt zwei Arten von Locks in C++. Es gibt den lock_guard und den unique_lock. Beide, soweit die Lebenszeit ihres Mutexes. das heißt, der lock_guard und der unique_lock bekommt jeweils einen Mutex und verwaltet die Lebenszeit von diesem. Die entscheidende Idee ist dabei, dass der lock_guard und die unique_lock automatisch den Mutex destruieren, wenn der lock_guard und die unique_lock seinen Gültigkeitsbereich verlassen. Das heißt, Sie können auf keinen Fall vergessen, den Mutex zu unlocken. Da ist die einfache Empfehlung, keinen Mutex direkt verwenden, sondern immer in einen Lock verpacken. Unique_lock und lock-guard benötigen Header-Datei . Jetzt komme ich leider zum hässlichsten Akronym in der C++ Sprache, RAII (Ressource Acquisition is Initialization). Ich habe dem Akronym nicht den Namen hässlichstes Akronym in C++ gegeben, der Name stammt vom Bjarne Stroustrup, Erfinder vom C++, der hat einerseits das Akronym definiert und andererseits im nächsten Schritt schon gesagt, hmm, das war kein schöner Name. Was es steht je beim RAII. Sie binden die lebenszeit der Ressource an die Lebenszeit eines lokalen Objekts. Die Lebenszeit der Ressource ist in diesem Fall die Lebenszeit des Mutex, und die binden Sie an die Lebenszeit des Locks. Wie geschieht es? Im Konstruktor wird der Mutex gebunden, das heißt, gelockt, im Destruktor wird automatisch wieder freigegeben, sprich ungelockt. Das ist ein wahnsinnig wichtiges Ideom in C++ und Sie finden es zum Beispiel auch in dem SmarPointer. Wieso ist es so wichtig? Das Aufrufen des Destruktors in C++ ist vollkommen deterministisch. Das heißt, das passiert genau zu dem Zeitpunkt, wenn das lokale Objekt, sprich das Lock, seinen Gültigkeitsbereich verlässt, genau in dem Zeitpunkt wird der Destruktor aufgerufen und damit wird auch die Ressource ungelockt. In dieser Lektion habe ich ihnen Überblick gegeben über die verschiedenen Locks. Insbesondere lock_guard und unique_lock.

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!