void HelloWorld()
{
static std::atomic<short> static_counter = 0;
short val = ++static_counter; // or val = static_counter++;
}
Se questa funzione viene chiamata da due fili,Discussione sicuro variabile locale
grado la variabile locale val
essere 1
in entrambi i fili? o (0 se viene utilizzato static_counter++
?)
Possibile duplicato http://stackoverflow.com/questions/8102125/is-local-static-variable-initialization-thread-safe-in-c11 – user2807083
@ user2807083 Questa non è la domanda. So che static_counter sarà inizializzato in modo sicuro. Lo standard C++ 11 lo richiede. Sto parlando di val, che non è statico .. – James
Penso che qui non sia nulla circa il tuo 'var' locale, ma tutto ciò che riguarda l'operatore ++ applicato alla variabile statica. Quindi penso che la domanda giusta sia "L'incremento del thread variabile atomico è sicuro?" – user2807083