我在读这个:http ://en.wikipedia.org/wiki/Thread_safety
以下函数是线程安全的吗?
void foo(int y){
int * x = new int[50];
/*...do some stuff with the allocated memory...*/
delete [] x;
}
在文章中它说为了线程安全,您只能使用堆栈中的变量。真的吗?为什么?上述函数的后续调用不会在其他地方分配内存吗?
编辑:啊。看起来我误读了文章的这一部分:
子程序是可重入的,因此是线程安全的,如果
- 它使用的唯一变量来自堆栈
(我认为它的意思是
子程序是可重入的,因此是线程安全的,当且仅当
- 它使用的唯一变量来自堆栈
,根据下面的答案,情况并非如此)