Без учета типа переменной это не потокобезопасно.Вы должны использовать мьютексы / критические секции или атомарные переменные.
Иногда полезно написать простой код, который присваивает переменные нескольких типов, и разбирать его, чтобы увидеть, как он будет назначен.
Кроме того, для архитектуры с поддержкой cas вы можете использовать ассемблерный код для имитации атомарной переменной.
(Другой совет: переменная должна быть объявлена как volatile
, если она используется в потокахпредотвратить оптимизацию, выполненную компилятором.)