Рассмотрим простую (глобальную в моем случае) переменную:
int i;
Где-то доступна эта переменная
pthread_mutex_lock(i_mutex);
if(i == other value) {
do_something();
}
pthread_mutex_unlock(i_mutex);
Другой поток обновляет i
, пока он держит i_mutex
. Может ли компилятор кэшировать значение i
так
Я не получил последнее значение? Должен i
быть неустойчивым?