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