たとえば、次のような方法があります。
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 を使用しています。