16
考虑下面的代码:同步的“参考”或实例
public class Foo {
private static final Object LOCK = new Object();
private Object _lockRef1 = LOCK;
private Object _lockRef2 = LOCK;
private int _indx = 0;
public void dec() {
synchronized(_lockRef1) {
_indx--;
}
}
public void inc() {
synchronized(_lockRef2) {
_indx++;
}
}
}
是调用方法dec()
和inc()
线程?一方面这些方法在两个不同的实例上同步_ lockRef1
和_ lockRef2
。在另一方面,这种情况下“点”同一个对象LOCK
上...
这个问题被标记为'Java',所以我认为这将是'java.lang.Object'。 – Yuval 2009-12-14 11:38:24
@Yuval:Doh--没有发现。谢谢,修正:) – 2009-12-14 11:46:10
明白了!谢谢!实际上,我有一个emun而不是“私人静态最终对象”,但看起来这个想法是一样的。 – Lopotun 2009-12-14 12:14:49