//dit is het producer/conusmer probleem, hierbij hebben we 3 elementen een gemeenschappelijk object, 2 thread (producer/consumer) //We hebben altijd 2 methodes synchronized uiteraard, 1 getter en 1 setter, beide moeten op een conditie getest worden die tegengesteld is //zolang de consumer aan de beurt is, moet de producer wachten. Het dit object staat dus een lock //omgekeerd geld dus ook. public class Winkel { public boolean aandebeurt = false; public String boodschap; public synchronized void set(String boodschap) { while(aandebeurt) //indien de consumer die neemnt, niet aan de beurt is kan de produceren plaatsen { try{ wait(); } catch(InterruptedException ex) { } } this.boodschap = boodschap; aandebeurt = true; //indien men hier geraakt was ze true notifyAll(); } public synchronized String get(){ while(!aandebeurt) { try { wait(); } catch(InterruptedException ex1) { } } aandebeurt = false; notifyAll(); return boodschap; } }