Hey,
folgende Situation:
Ich arbeite gerade nochmal die Insel durch und hänge mich an einer Formulierung auf.
Wenn nun zwei Threads die Methode auf zwei unterschiedliche Objekte parallel aufrufen können (Objektmethode mit Zugriff auf statische Variable), wie wird dann i behandelt, dass sich beide Objekte teilen?
folgende Situation:
Code:
class Main{
static int i;
public synchronized void foo(){
i++;
}
}
Ich arbeite gerade nochmal die Insel durch und hänge mich an einer Formulierung auf.
Bei einem Konflikt (mehrere Threads rufen foo() auf) verhindert synchronized, dass sich mehr als ein Thread gleichzeitig im kritischen Abschnitt, dem Rumpf der Funktion foo(), befinden kann. Dies bezieht sich nur auf mehrere Aufrufe von foo() für dasselbe Objekt. Zwei verschiedene Threads können durchaus parallel die Funktion foo() für unterschiedliche Objekte ausführen.
Wenn nun zwei Threads die Methode auf zwei unterschiedliche Objekte parallel aufrufen können (Objektmethode mit Zugriff auf statische Variable), wie wird dann i behandelt, dass sich beide Objekte teilen?