OOP-Projects-Java

Log | Files | Refs | README

commit ec6b59ca803013a1d0f5f7866a4428c3f7a263de
parent 7c94a1db33beb476f260d29527ba8b7a6689b3a2
Author: William Lindholm <william_lindholm@outlook.com>
Date:   Mon, 20 Feb 2023 14:28:04 +0100

Added Timertask and Threading functionality for Worker class

Diffstat:
MOOP2023_a22willi_a21liltr_assignment3/src/fika/Main.java | 9+++++++--
MOOP2023_a22willi_a21liltr_assignment3/src/fika/Worker.java | 36+++++++++++++++++++++++++++++++++++-
2 files changed, 42 insertions(+), 3 deletions(-)

diff --git a/OOP2023_a22willi_a21liltr_assignment3/src/fika/Main.java b/OOP2023_a22willi_a21liltr_assignment3/src/fika/Main.java @@ -2,9 +2,14 @@ package fika; public class Main { - public static void main(String[] args) { + public static void main(String[] args) throws InterruptedException { // TODO Auto-generated method stub - + Worker thr1 = new Worker("William"); + Worker thr2 = new Worker("Lili"); + Worker thr3 = new Worker("Sol"); + thr1.start(); + thr2.start(); + thr3.start(); } } diff --git a/OOP2023_a22willi_a21liltr_assignment3/src/fika/Worker.java b/OOP2023_a22willi_a21liltr_assignment3/src/fika/Worker.java @@ -1,5 +1,39 @@ package fika; -public class Worker { +import java.util.Random; +import java.util.Timer; +import java.util.TimerTask; +public class Worker extends Thread { + private String name; + private int energy; + private Random r = new Random(); + private int T; + private Timer timer = new Timer(); + + private TimerTask task = new TimerTask() { + public void run() { + energy--; + System.out.println(name + ": " + energy); + } + }; + + + public Worker(String name) { + this.name = name; + this.energy = r.nextInt(30, 90); + this.T = r.nextInt(500, 1500); + + timer.scheduleAtFixedRate(task, T, T); + + + } + + public Worker(String name, int energy) { + this.name = name; + this.energy = energy; + this.T = r.nextInt(500, 1500); + + timer.scheduleAtFixedRate(task, T, T); + } }