class KaffeBar {
static class Barista implements Runnable {
private final Monitor monitor;
Barista(Monitor monitor) {
this.monitor = monitor;
}
@Override
public void run() {
try {
Thread.sleep(1000);
monitor.leggTilKaffe();
} catch (InterruptedException e) {
System.err.println("Unntak");
}
}
}
static class Baker implements Runnable {
private final Monitor monitor;
Baker(Monitor monitor) {
this.monitor = monitor;
}
@Override
public void run() {
try {
Thread.sleep(3000);
monitor.leggTilKaker();
} catch (InterruptedException e) {
System.err.println("Unntak");
}
}
}
static class Gjest implements Runnable {
private final Monitor monitor;
Gjest(Monitor monitor) {
this.monitor = monitor;
}
@Override
public void run() {
try {
monitor.hentOrdre();
Thread.sleep(10000);
} catch (InterruptedException e) {
System.err.println("Unntak");
}
}
}
public static void main(String[] args) {
Monitor monitor = new Monitor();
Thread barista = new Thread(new Barista(monitor));
Thread baker = new Thread(new Baker(monitor));
Thread gjest = new Thread(new Gjest(monitor));
barista.start();
baker.start();
gjest.start();
try {
gjest.join();
} catch (InterruptedException e) {
System.err.println("Unntak i main");
}
}
}