2024-05-30 09:31:58 +00:00
|
|
|
package VL14.Aufgabe01;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Class representing a counter.
|
|
|
|
*
|
|
|
|
* @author Sebastian Brosch
|
|
|
|
*/
|
|
|
|
public class Counter implements Runnable {
|
|
|
|
static int counter;
|
|
|
|
|
|
|
|
// some information of the counter.
|
|
|
|
private int number;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Create a new counter with initializing the start value.
|
|
|
|
*
|
|
|
|
* @param number The number to increment or decrement the counter.
|
|
|
|
* @param start The start value of the counter.
|
|
|
|
*/
|
2024-05-30 09:37:17 +00:00
|
|
|
public Counter(int number, int start) {
|
|
|
|
this(number);
|
2024-05-30 09:31:58 +00:00
|
|
|
counter = start;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Create a new counter without initializing the start value.
|
|
|
|
*
|
|
|
|
* @param number The number to increment or decrement the counter.
|
|
|
|
*/
|
2024-05-30 09:37:17 +00:00
|
|
|
public Counter(int number) {
|
2024-05-30 09:31:58 +00:00
|
|
|
this.number = number;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Method to run some code in a Thread.
|
|
|
|
*/
|
|
|
|
public void run() {
|
|
|
|
while (counter > 0 && counter < 1000) {
|
|
|
|
this.count();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Method to increment or decrement the counter.
|
|
|
|
*/
|
|
|
|
private void count() {
|
|
|
|
synchronized (getClass()) {
|
|
|
|
counter += this.number;
|
2024-05-30 09:37:17 +00:00
|
|
|
System.out.printf("%3d [%s: %3d]\n", counter, Thread.currentThread().getName(), this.number);
|
2024-05-30 09:31:58 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|