public static void main(String[] args) { Cook cook1 = new Cook("Amigo"); cook1.setQueue(QUEUE); Cook cook2 = new Cook("Bamigo"); cook2.setQueue(QUEUE); Waitor waitor = new Waitor(); cook1.addObserver(waitor); cook2.addObserver(waitor); List<Tablet> tabletList = new ArrayList<>(); for (int i = 0; i < 5; i++) { Tablet tablet = new Tablet(i + 1); tablet.setQueue(QUEUE); tabletList.add(tablet); } Thread cook1Task = new Thread(cook1); Thread cook2Task = new Thread(cook2); cook1Task.start(); cook2Task.start(); Thread task = new Thread(new RandomOrderGeneratorTask(tabletList, ORDER_CREATING_INTERVAL)); task.start(); try { Thread.sleep(1000); } catch (InterruptedException e) { } task.interrupt(); while (!QUEUE.isEmpty()) {} while ((cook1.isBusy()) || (cook2.isBusy())) {} cook1Task.interrupt(); cook2Task.interrupt(); DirectorTablet directorTablet = new DirectorTablet(); directorTablet.printAdvertisementProfit(); directorTablet.printCookWorkloading(); directorTablet.printActiveVideoSet(); directorTablet.printArchivedVideoSet(); }