今天我们在多线程环境中讨论了有关静态成员函数的问题。我们问自己并且找不到令人满意的答案的问题是: 也是静态成员函数的局部变量static?静态成员函数的局部变量
// header
class A
{
static int test();
}
// implementation
int A::test()
{
int a = rand();
int b = rand();
int c = a + b;
return c;
}
假设你有两个线程都调用A :: test()。是否有可能在线程1处理c = a + b
时线程2输入test(),并通过指定rand()的新返回值或换句话说,两个线程操作a,b和c的一些内存位置来更改值a
?