added ex I
This commit is contained in:
parent
43124b51cc
commit
bd44a92834
32
src/exercicses/ex_i/Employee.java
Normal file
32
src/exercicses/ex_i/Employee.java
Normal file
@ -0,0 +1,32 @@
|
||||
package exercicses.ex_i;
|
||||
|
||||
public class Employee extends Thread {
|
||||
private String name;
|
||||
private String room;
|
||||
private int exageratedTimeUsageFactor;
|
||||
|
||||
public Employee(String name, String room, int exageratedTimeUsageFactor) {
|
||||
this.name = name;
|
||||
this.room = room;
|
||||
this.exageratedTimeUsageFactor = exageratedTimeUsageFactor;
|
||||
}
|
||||
|
||||
public void useRoom(int time) {
|
||||
synchronized (room) {
|
||||
System.out.println(name + " uses room for time: " + time);
|
||||
try {
|
||||
Thread.sleep(time);
|
||||
} catch (InterruptedException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void run() {
|
||||
System.out.println(name + " thread started");
|
||||
while (true) {
|
||||
useRoom(100 * exageratedTimeUsageFactor);
|
||||
}
|
||||
}
|
||||
}
|
13
src/exercicses/ex_i/TestingStarvation.java
Normal file
13
src/exercicses/ex_i/TestingStarvation.java
Normal file
@ -0,0 +1,13 @@
|
||||
package exercicses.ex_i;
|
||||
|
||||
public class TestingStarvation {
|
||||
public static void main(String[] args) {
|
||||
String sharedRoom = "Polaris";
|
||||
Employee t1 = new Employee("Emma", sharedRoom, 1);
|
||||
Employee t2 = new Employee("Jean", sharedRoom, 100);
|
||||
|
||||
t1.start();
|
||||
t2.start();
|
||||
System.out.println("Main thread ended");
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user