【发布时间】:2010-09-13 17:14:03
【问题描述】:
假设我们有一个像这样的 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”,或者每个进入的线程会在 for 循环中修改 i,导致 i 一直在奇怪地变化。
【问题讨论】:
标签: c++ multithreading