скажем, у нас есть класс C ++, такой как:
class MyClass
{
void processArray( <an array of 255 integers> )
{
int i ;
for (i=0;i<255;i++)
{
// do something with values in the array
}
}
}
и один экземпляр класса, например:
MyClass myInstance ;
и 2 потока, которые вызывают метод processArray этого экземпляра (в зависимости от того, как система выполняет потоки, возможно, в совершенно неправильном порядке). В этой области не используется блокировка мьютекса, поэтому оба потока могут войти.
Мой вопрос: что происходит с i? Имеет ли каждая область видимости свое собственное «i» или каждый входящий поток изменяет i в цикле for, вызывая странное постоянное изменение i.