Bedingungsvariablen

Bedingungsvariablen ermöglichen es, Threads über Benachrichtigungen zu synchronisieren. Damit lassen sich typische Anwendungsfälle wie Sender/Empfänger oder Producer/Consumer umsetzen. In diesen wartet der Empfänger oder Consumer, bis er eine Benachrichtigung vom Sender oder Producer erhält um mit seiner Arbeit fortzufahren.

Weiterlesen...
Kommentar schreibenGelesen: 7425

Threadlokale Daten

Threadlokale Daten werden durch das Schlüsselwort thread_local definiert. Sie sind schnell erklärt.

Weiterlesen...
Kommentar schreibenGelesen: 5187

Sicheres Initialisieren der Daten

Werden Daten während ihrer ganze Lebenszeit nur lesend von mehreren Threads verwendet, müssen diese nur sicher initialisiert werden. Das teure Locken der Daten ist bei keinem Zugriff notwendig.

Weiterlesen...
Kommentar schreibenGelesen: 8280

Locks statt Mutexen

Wenn der letzte Artikel Gefahren von Mutexen etwas gezeigt hat, dann, dass Mutexe mit großer Vorsicht zu genießen sind. Daher sollen Mutexe in C++ in Locks verpackt werden.

Weiterlesen...
Tags: Mutexe, Locks
Kommentar schreibenGelesen: 16926

Gefahren von Mutexen

Der Einsatz von Mutexen hört sich sehr einfach an. Es gibt einen kritischen Bereich "Critical Section" im Code, den nun ein Thread betreten darf. Genau diese Exklusivität sichert ein Mutex m durch die zwei Aufrufe m.lock() und m.unlock() zu. Der Teufel steckt aber sprichwörtlich im Detail.

Weiterlesen...
Tags: Mutexe
Kommentar schreibenGelesen: 7345

Threads teilen Daten

Die große Herausforderung mit Threads beginnt dann, wenn sich diese Daten teilen und diese nicht konstant sind.

Weiterlesen...
Tags: C++14, Mutexe
Kommentar schreibenGelesen: 9611

Datenübergabe an Threads

Ein Thread kann seine Daten per Copy oder per Referenz erhalten. Per Default sollte der Thread seine Daten per Copy annehmen, da per Referenz angenommene Daten leicht ihre Gültigkeit verlieren.

Weiterlesen...
Kommentar schreibenGelesen: 9591

Lebenszeit von Threads

Der Erzeuger muss sich um sein Kind kümmern. Diese einfache Aussage besitzt für Threads weitreichende Konsequenzen. Das kleine Programm startet einen Thread, der seine ID auf der Konsole ausgeben soll. 

Weiterlesen...
Kommentar schreibenGelesen: 10344

Threads erzeugen

Der Umgang mit Threads in C++ ist schnell erzählt. Durch den Aufruf std::thread wird ein neuer Thread erzeugt. Dieser Thread benötigt ein Arbeitspaket und startet sofort. Der erzeugende Thread (Der Erzeuger) muss sich um die Lebenszeit seines erzeugten Threads (Das Kind) kümmern. Der Erzeuger wartet entweder, bis sein Kind seine Arbeit vollzogen hat oder er trennt sich von ihm. Die Daten nimmt das Kind per Copy oder Referenz an. 

Weiterlesen...
Kommentar schreibenGelesen: 24544

Abonniere den Newsletter (+ pdf Päckchen)

Beiträge-Archiv

Sourcecode