den folgenden Code vor:Synchronisation auf „Referenz“ oder auf Instanz
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++;
}
}
}
Ist Aufruf an Methoden dec()
und inc()
THREAD? Zum einen werden diese Methoden an zwei verschiedenen Instanzen _ lockRef1
und _ lockRef2
synchronisiert. Auf der anderen Seite sind diese Instanzen „Punkt“ auf dem gleichen Objekt LOCK
...
Die Frage ist mit 'Java' markiert, also denke ich, dass dies 'java.lang.Object' wäre. – Yuval
@Yuval: Doh - habe das nicht bemerkt. Danke, behoben :) –
Got it! Vielen Dank! Eigentlich habe ich eine emun statt "private statische final Object", aber es scheint, die Idee ist die gleiche. – Lopotun