例如,以下方法:
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。