例如,
public Foo{
private Object mutex = new Object();
private int bar;
public Foo(Foo f){
this.mutex = f.getMutex();
this.bar = f.getBar();
}
public Object getMutex(){
return mutex;
}
public void setBar(int bar){
synchronized(mutex){
this.bar = bar;
}
}
public int getBar(){
synchronized(mutex){
return bar;
}
}
}
答案 0 :(得分:3)
这取决于 - 你想要这两个对象共享一个互斥体(真正的浅拷贝)还是你想让它们独立?在大多数情况下,我会期待后者,在这种情况下,不会想要复制引用。
答案 1 :(得分:1)
在这种情况下,应该执行以下所有操作:
final