Posts mit dem Label Threads werden angezeigt. Alle Posts anzeigen
Posts mit dem Label Threads werden angezeigt. Alle Posts anzeigen

Threads und volatile

Hier spielen mindestens drei Dinge mit rein:


  1. Darf der Compiler das Lesen/Schreiben einer Variablen im generierten Maschinentext nach oben oder unten verschieben?
  2. Darf die CPU das Lesen/Schreiben eines Registers in der Ausführung vorziehen oder auf später verschieben?
  3. Darf der Compiler das Lesen/Schreiben einer Variablen wekoptimieren?


Multithreading

Frage zu Multithreading: Ich habe dunkel in Erinnerung, dass ein Kommilitone mal ein Problem hatte. Bei einem OpenMP-Programm. Globale Variablen waren zwischen zwei Threads nicht synchronisiert. War das ein Problem mit, das mit „volatile“ lösbar wäre oder muss man da auf dem Heap allokieren?