Hi,
Ich habe folgendes Problem: Ich möchte auf eine Methode mit mehreren Threads gleichzeitig zugreifen lassen, dazu brauche ich bestimmte Variablen(Counter) zu synchronisieren.
Ich würde erwarten, dass bei 10 Threads:
value: 1
value: 2
....
value: 10
ausgegeben würde.
Ich bekomme leider manche Zahlen doppelt ausgegeben, andere dafür überhaupt nicht:
value: 2
value: 2
value: 3
value: 4
....
Was läuft hier falsch???
Ich habe folgendes Problem: Ich möchte auf eine Methode mit mehreren Threads gleichzeitig zugreifen lassen, dazu brauche ich bestimmte Variablen(Counter) zu synchronisieren.
Code:
public class Sync()
{
private int count=0;
public synchronized void increment()
{ count++;}
public synchronized void decrement()
{ count--;}
public synchronized int value()
{ return count;}
}
public class MyClass()
{
private static final counter = new Sync();
private void myMethod(){
counter.increment();
System.out.println("value: " + counter.value());
}
}
value: 1
value: 2
....
value: 10
ausgegeben würde.
Ich bekomme leider manche Zahlen doppelt ausgegeben, andere dafür überhaupt nicht:
value: 2
value: 2
value: 3
value: 4
....
Was läuft hier falsch???
Zuletzt bearbeitet: