commit 3eb31e1ec38ae73a77731621b8b4b46c9f7d1dd8
parent ec6b59ca803013a1d0f5f7866a4428c3f7a263de
Author: William Lindholm <william_lindholm@outlook.com>
Date: Mon, 20 Feb 2023 14:53:52 +0100
Added timescale variable for debugging and worker logic
Diffstat:
1 file changed, 14 insertions(+), 4 deletions(-)
diff --git a/OOP2023_a22willi_a21liltr_assignment3/src/fika/Worker.java b/OOP2023_a22willi_a21liltr_assignment3/src/fika/Worker.java
@@ -5,16 +5,26 @@ import java.util.Timer;
import java.util.TimerTask;
public class Worker extends Thread {
+ private static int TimeScale = 10; // used to change speed of simulation (default = 1)
+
private String name;
private int energy;
private Random r = new Random();
- private int T;
+ private int T; //delay used between every iteration.
private Timer timer = new Timer();
private TimerTask task = new TimerTask() {
public void run() {
energy--;
- System.out.println(name + ": " + energy);
+
+ if (energy <= 0) {
+ System.out.println(name + " is going home with energy level " + energy);
+ task.cancel();
+ } else if (energy < 30) {
+ System.out.println(name + " is taking a break with energy level " + energy);
+ } else {
+ System.out.println(name + " Is working with energy level " + energy);
+ }
}
};
@@ -24,7 +34,7 @@ public class Worker extends Thread {
this.energy = r.nextInt(30, 90);
this.T = r.nextInt(500, 1500);
- timer.scheduleAtFixedRate(task, T, T);
+ timer.scheduleAtFixedRate(task, T / TimeScale, T / TimeScale);
}
@@ -34,6 +44,6 @@ public class Worker extends Thread {
this.energy = energy;
this.T = r.nextInt(500, 1500);
- timer.scheduleAtFixedRate(task, T, T);
+ timer.scheduleAtFixedRate(task, T / TimeScale, T / TimeScale);
}
}