volatile bool a thread-safe

0

Witam,

czy poniższy fragment kodu jest wątkowo-bezpieczny(thread-safe) z punktu widzenia standardu C++ z 2003 roku?


volatile bool x = false;

//watek 1 - zapisuje i czyta x
x = true;
if(x)
//...

//watek 2 - czyta x
if(x)
//...

0

Nie, nie jest.

0

dlaczego nie? jeśli tylko jeden wątek zapisuje wartość, to nie powinno być problemu. w razie jednoczesnego dostępu z obu wątków najwyżej wątek 2 załapie się w danej iteracji na wartość jeszcze przed zmianą.
a temu nie zapobiegniesz w żaden sposób, ani nie jest to groźne.

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0