Bedingungsvariablen

Performanzvergleich von Bedingungsvariablen und Atomics in C++20

Nach Einführen des std::atomic_flag in meinem letzten Artikel "Synchronisation mit atomaren Variablen in C++20" möchte ich nun tiefer eintauchen. Heute implementiere ich ein Ping-Pong-Spiel mit Bedingungsvariablen: std::atomic_flag und std::atomic<bool>. Los geht das Spiel!

Hier geht's direkt zum Artikel auf Heise Developer:

Gelesen: 2118

Synchronisation mit atomaren Variablen

Sender/Empfänger Arbeitsabläufe sind typisch für Threads. In solch einem Arbeitsablauf wartet der Empfänger auf die Benachrichtigung des Senders bevor er seine Arbeit fortsetzt. Es gibt einige Möglichkeiten diesen Arbeitsablauf umzusetzen. Mit C++11 bieten sich Bedingungsvariablen oder Promise/Future-Paare an, mit C++20 atomare Variablen.

Hier geht es direkt zum Artikel auf Heise Developer:

Gelesen: 2177

C++ Core Guidelines: Sei dir der Fallen von Bedingungsvariablen bewußt

Heute schreibe ich einen gruseligen Artikel zu Bedingungsvariablen. Du solltest dir ihrer Gefahren bewusst sein. Die Regel CP.42 der C++ Core Guidelines lautet schlicht: "Don't wait without a condition."

Hier geht es direkt zum Artikel auf Heise Developer:

Gelesen: 8155

Bedingungsvariablen versus Tasks zur Synchronisation von Threads

 

Werden Promise und Future für die Synchronization von Threads verwendet, haben sie sehr viel gemein mit Bedingungsvariablen. Meist sind Tasks die bessere Wahl.

Weiterlesen...
Gelesen: 12961

Der atomare Wahrheitswert

Im Gegensatz zum dem std::atomic_flag sind alle weiteren atomaren Datentypen partielle oder vollständige Spezialisierungen des Klassen-Templates std::atomic. Den Anfang macht std::atomic<bool>.

Weiterlesen...
Gelesen: 15076

Promise und Future

std::promise und std::future geben die volle Kontrolle über die Task.

Weiterlesen...
Gelesen: 27850

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...
Gelesen: 12617

Abonniere den Newsletter (+ pdf Päckchen)

Beiträge-Archiv

Sourcecode

Neuste Kommentare