Locks

C++ Core Guidelines: Teilen von Daten zwischen Threads

Die große Herausforderungen mit Threads beginnen dann, wenn veränderliche Daten zwischen diesen geteilt werden. Um kein Data Race und damit undefiniertes Verhalten zu erhalten, müssen die geteilten Daten geschützt werden.

Hier geht es zum Artikel auf Heise Developer:

Tags: Locks, Mutexe
Gelesen: 9507

C++ Core Guidelines: Regeln zur Concurrency und zur Parallelität

C++11 war der erste C++ Standard, der sich mit Concurrency beschäftigt. Der zentrale Baustein für Concurrency ist ein Thread. Dies ist der Grund, dass die meisten der Regeln sich mit Threads beschäftigen. Dies ändert sich dramatisch mit C++17.

Hier geht es direkt zum Artikel auf Heise Developer: .

Gelesen: 9340

CppMem - Sukzessive Optimierung 1

Heute will ich mit CppMem einen Schritt weiter gehen und die Sukzessive Optimierung der gleichnamigen Miniserie dieses Blogs genauer analysieren.

Weiterlesen...
Gelesen: 10132

Multithreaded: Addition mit minimaler Synchronisation

Zwei Strategien bin ich bisher bei meiner Addition aller Elemente eines std::vector gefolgt. Zum einen habe ich die ganze Summation in einem Thread ausgeführt (Single-Threaded: Summe der Elemente eines Vektors), zum anderen alle Threads auf einer gemeinsamen Summations-Variable (Multithreaded: Addition mit einer geteilten Variable) agieren lassen. Gerade die zweite Strategie war sehr naiv. In diesem Artikel werde ich meine Erkenntnisse aus beiden Artikeln anwenden. Mein Ziel wird es daher sein, die Threads möglichst unabhängig ihre Arbeit ausführen zu lassen und die Synchronisation der Threads auf der Summations-Variable zu minimieren.

Weiterlesen...
Gelesen: 11924

Multithreaded: Addition mit einer geteilten Variable

Ziel dieses Artikels ist es, die Summe aller Elemente eines Vektors zu bilden. Habe ich es im letzten Artikel mit einem Thread versucht, nütze ich dieses mal die volle Power meiner PCs. Ich verwende eine gemeinsame Summen-Variable, die von allen Threads gleichzeitig benutzt wird. Was bei ersten Hinsehen wie eine gute Idee klingt, ist bei genauerem Blick eine sehr naive Strategie. Überwiegt der Aufwand für die Synchronisation der Summen-Variable deutlich den Performanzvorteil der vier bzw. zwei CPUs.

Weiterlesen...
Gelesen: 13979

Single-Threaded: Summe der Elemente eines Vektors

Wie lassen sich die Werte eines std::vector am schnellsten zusammenaddieren? Diese Frage will ich in mehreren Artikeln nachgehen. Als Referenzwert soll dabei die Addition in einem Thread dienen. In weiteren Artikel gehe ich auf atomare Variablen, Locks, Tasks und threadlokale Daten ein.

Weiterlesen...
Gelesen: 15416

Reader-Writer Locks

Mit C++14 erhielt C++ Reader-Writer Locks. Die Idee ist einfach und überzeugend. Während beliebig viele Threads gleichzeitig lesend auf einen kritischen Bereich zugreifen dürfen, darf nur genau ein Thread auf diesen schreibend zugreifen.

Weiterlesen...
Tags: Locks, Mutexe
Gelesen: 21516

Sukzessive Optimierung - Locks

Die naheliegendste Art, das undefinierte Verhalten des Artikels Sukzessive Optimierung in Wohlgefallen aufzulösen, sind  Locks.

Weiterlesen...
Gelesen: 9443

Das atomare Flag

Atomare Datentypen sichern zwei Eigenschaften zu. Zum einen sind sie atomar, zu anderen setzen die Synchronisations- und Ordungsbedingungen an die Programmausführung.

Weiterlesen...
Gelesen: 19781

Mentoring

Stay Informed about my Mentoring

 

Rezensionen

Tutorial

Besucher

Heute 306

Gestern 1303

Woche 1609

Monat 17551

Insgesamt 3316463

Aktuell sind 26 Gäste und keine Mitglieder online

Kubik-Rubik Joomla! Extensions

Abonniere den Newsletter (+ pdf Päckchen)

Beiträge-Archiv

Sourcecode

Neuste Kommentare