Asynchron aufrufbare Wrapper

std::packaged_task erlaubt es, einen einfachen Wrapper um eine aufrufbare Einheit zu erzeugen, so dass diese später ausgeführt werden kann.

Weiterlesen...
Tags: Tasks
Kommentar schreibenGelesen: 7151

Asynchrone Funktionsaufrufe

std::async verhält sich wie ein asynchroner Funktionsaufruf. Unter der Haube ist std:.async eine Task, die sich sehr leicht verwenden lässt.

Weiterlesen...
Tags: Tasks
Kommentar schreibenGelesen: 8889

Tasks

 Tasks sind relativ spät in den neuen C++11 Standard aufgenommen worden. Sie bieten eine deutlich höhere Abstraktion als Threads an und sind diesen fast immer vorzuziehen.

Weiterlesen...
Tags: Locks, Tasks
Kommentar schreibenGelesen: 8139

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: 8575

Threadlokale Daten

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

Weiterlesen...
Kommentar schreibenGelesen: 5736

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: 9168

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: 21583

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: 8307

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: 10694

Abonniere den Newsletter (+ pdf Päckchen)

Beiträge-Archiv

Sourcecode