Ist es möglich, dass der genaue in der Variablen festgelegte Wert vor dem Erstellen des Threads nicht angezeigt wird? [D
Posted: 03 Jan 2025, 19:06
Ich untersuche Speichersichtbarkeit, Cache-Nichtübereinstimmung und Cache-Inkonsistenz.
Mir ist bewusst, dass Threads unterschiedliche Werte haben können, selbst wenn der Wert zu einem beliebigen Zeitpunkt T in der Variablen festgelegt wird.
also müssen wir mit Memory Fence mutexieren oder atomar arbeiten.
Besteht die Möglichkeit, dass Thread t1 im folgenden Code einen anderen Wert als 10 oder einen Müllwert ausgibt?
Mir ist bewusst, dass Threads unterschiedliche Werte haben können, selbst wenn der Wert zu einem beliebigen Zeitpunkt T in der Variablen festgelegt wird.
also müssen wir mit Memory Fence mutexieren oder atomar arbeiten.
Besteht die Möglichkeit, dass Thread t1 im folgenden Code einen anderen Wert als 10 oder einen Müllwert ausgibt?
Code: Select all
#include
#include
#include
using namespace std;
int g_var1; // not Atomic, and No synchronization by mutex
void run()
{
// guarantee to print 10?
cout