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