uebungen/solutions/src/main/java/pr2/threads/race_condition/NumberIncrementer.java

43 lines
989 B
Java

package pr2.threads.race_condition;
/**
* Runnable, dass Zahlen inkrementieren kann.
*/
public class NumberIncrementer implements Runnable {
/**
* Zahl, bis zu der gearbeitet werden soll.
*/
private final int boundary;
/**
* Speicher für die generierten Zahlen.
*/
private final NumberList numberList;
/**
* Legt ein neues Objekt an.
*
* @param boundary Obergrenze für die Generierung
* @param numberList Speicher für die Zahlen
*/
public NumberIncrementer(int boundary, NumberList numberList) {
this.boundary = boundary;
this.numberList = numberList;
}
/**
* @see java.lang.Runnable#run()
*/
@Override
public void run() {
for (int i = 0; i < boundary; i++) {
synchronized (numberList) {
int lastNum = numberList.getLastNumber();
lastNum++;
numberList.add(lastNum);
}
}
}
}