Advertisement
jaVer404

level17.lesson10.bonus03_done

Oct 29th, 2015
210
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.78 KB | None | 0 0
  1. package com.javarush.test.level17.lesson10.bonus03;
  2.  
  3. public class Cook implements Runnable {
  4.     public boolean  continueWorking = true;
  5.  
  6.     @Override
  7.     public void run() {
  8.         boolean needToWait;
  9.         while (continueWorking || needToCookOrders()) {
  10.             try {
  11.                 synchronized (this) {
  12.                     needToWait = !needToCookOrders();
  13.                     if (!needToWait) {
  14.                         cooking();
  15.                     }
  16.                 }
  17.                 if (continueWorking && needToWait) {
  18.                     System.out.println("Повар отдыхает");
  19.                     Thread.sleep(100);
  20.                 }
  21.             } catch (InterruptedException e) {
  22.             }
  23.         }
  24.     }
  25.  
  26.     private boolean needToCookOrders() {
  27.         return !Manager.getInstance().getOrderQueue().isEmpty();
  28.     }
  29.  
  30.     private void cooking() throws InterruptedException {
  31.         Manager manager = Manager.getInstance();
  32.         Order order = manager.getOrderQueue().poll();      // повар берет заказ из очереди
  33.         System.out.println(String.format("Заказ будет готовиться %d мс для стола №%d", order.getTime(), order.getTableNumber()));
  34.         Thread.sleep(order.getTime());     // готовим блюдо
  35.         Dishes dishes = new Dishes(order.getTableNumber());       //  это готовое блюдо
  36.         manager.getDishesQueue().add(dishes);////!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!это решение повар должен ложить в очередь.
  37.         System.out.println(String.format("Заказ для стола №%d готов", dishes.getTableNumber()));
  38.     }
  39. }
  40.  
  41.  
  42. /*единственный класс где нужно что-то менять*/
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement