私はこれを読んでいました: 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;
}
この記事では、スレッドセーフにするためにスタックからの変数のみを使用できると述べています。本当に?なんで?上記の関数の後続の呼び出しは、メモリを別の場所に割り当てませんか?
編集:ああ。記事のこの部分を読み間違えたようです。
サブルーチンは再入可能であるため、スレッドセーフです。
- 使用する変数はスタックからのものだけです
(という意味にとった
サブルーチンは再入可能であり、したがってスレッドセーフです。
- 使用する変数はスタックからのものだけです
、以下の回答によると、そうではありません)