シングルトンとスレッドセーフに関する質問はたくさん見つかりましたが、この質問に完全に答えたものはありませんでした...しかし、繰り返しの場合はお詫び申し上げます。
複数のスレッドで使用されるシングルトンオブジェクトがある場合、メンバー変数への変更は慎重に検討する必要があることを理解していますが、メソッドに対してローカルな変数についてはどうでしょうか。
この疑似コードを考えてみましょう。
class Singleton [assume this has all the trappings of a proper singleton]
{
int doSomething() {
SomeObject obj;
obj.doStuff();
return obj.result();
}
}
この場合、ローカルの「obj」スレッドは安全ですか?シングルトンクラスのオブジェクトが1つしかない場合でも、各スレッドは独自のコピーを取得しますか?