Итак, я имею дело со следующей ситуацией. Я хочу, чтобы все мои потоки выполняли цикл до тех пор, пока ни один из них не достигнет определенного «если», поэтому я использую глобальную переменную, в которой хранится 0, и когда достигается оператор if, эта переменная становится 1.
Проблема в том, что в конце цикла я создаю барьер для синхронизации всех потоков (в моем случае у меня всего 4), и только это достигло, если значение глобальной переменной равно 1, у других - 0.
Как это может быть? Как может глобальная переменная иметь разные значения в разных потоках?