たとえば、次のような方法があります。
class MyClass
self.perform(id)
hash = doSomething(id)
doMoreStuff(hash)
return hash
end
end
私の懸念は、複数のスレッドが を呼び出しているかどうかですMyClass.perform()
。オブジェクトhash
が別のスレッドによって上書きされる可能性はありますか? つまり、スレッド 1 が を呼び出しdoSomething
て、返されたハッシュを取得し{1 => 1}
ます。しかし、その直後にスレッド 2 が呼び出さdoSomething
れ、 のハッシュが取得され{2 => 2}
ます。今、何が起きた?スレッド 1 のハッシュは に変わり{2 => 2}
ますか?
それとも、各スレッドは単独hash
で動作し、他のスレッドが触れることはありませんか? doSomething
およびdoMoreStuff
はすでにスレッドセーフであると仮定します。
問題があれば、Rails 3.0 を使用しています。