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