Моя программа имеет 2 потока и глобальную переменную int. Один поток читает эту переменную, а другой поток записывает эту переменную. Должен ли я использовать блокировку мьютекса в этой ситуации.Чтение глобальной переменной из потока и запись на эту переменную из другого потока
Эти функции выполняются из двух потоков одновременно и повторяются в моей программе.
void thread1()
{
if (condition1)
iVariable = 1;
else if (condition2)
iVariable = 2;
}
void thread2()
{
if (iVariable == 1)
//do something
else if (iVarable == 2)
//do another thing
}
Скажем, thread1() назначит 1 для iVariable (скажем, старое значение iVariable равно 0). Одновременно функция thread2() оценивает выражение (iVariable == 1) внутри условия if. Я знаю, что логическое выражение, возвращаемое выражением (iVariable == 1), непредсказуемо. Но я хочу узнать, выполняется ли после выполнения функции thread1() значение iVariable1 равно 1 или другому значению мусора. – SRF
Это единственное, о чем вам не о чем беспокоиться. Я упомянул в ответе. –
Тогда не о чем беспокоиться. И нет смысла блокировать мьютексы, поскольку никакие значения мусора не будут назначены iVariable. – SRF