看看下面的代码:线程安全类和方法参数
public void SomeMethodWithParameters(MutableObject mutableParameter, String stringParameter, double structParameter)
{
// some code
}
这是我的理解,这个代码是不是线程安全的,由于这样的事实,mutableParameter是这种方法的多变之外。
你在代码中使用什么策略(除了只使用不可变的类或结构作为参数)以防止这种可能性?是否所有传递的对象都是这个方法实际上是深层克隆?
在C#中,我认为“参考参数”的通常含义是'ref'参数。也许“参考类型的参数”会更清楚? – recursive 2011-04-27 21:20:31
这只是一个问题*如果* mutableParameter *可以*在方法调用期间更改。如果没有其他线程具有对mutableParameter的引用,那么在方法外部更改它并不重要,因为它不会更改... – forsvarir 2011-04-27 21:21:36
为了论证的缘故,它*在方法调用之外是可修改的。 – miguel 2011-04-27 21:27:57