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

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

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

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

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

Promise und Future

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

Weiterlesen...
Gelesen: 35744

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

Mentoring

Stay Informed about my Mentoring

 

Rezensionen

Tutorial

Besucher

Heute 221

Gestern 1153

Woche 4137

Monat 8605

Insgesamt 2488254

Aktuell sind 46 Gäste und keine Mitglieder online

Kubik-Rubik Joomla! Extensions

Abonniere den Newsletter (+ pdf Päckchen)

Beiträge-Archiv

Sourcecode

Neuste Kommentare