Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.javarush.test.level17.lesson10.bonus03;
- public class Cook implements Runnable {
- public boolean continueWorking = true;
- @Override
- public void run() {
- boolean needToWait;
- while (continueWorking || needToCookOrders()) {
- try {
- synchronized (this) {
- needToWait = !needToCookOrders();
- if (!needToWait) {
- cooking();
- }
- }
- if (continueWorking && needToWait) {
- System.out.println("Повар отдыхает");
- Thread.sleep(100);
- }
- } catch (InterruptedException e) {
- }
- }
- }
- private boolean needToCookOrders() {
- return !Manager.getInstance().getOrderQueue().isEmpty();
- }
- private void cooking() throws InterruptedException {
- Manager manager = Manager.getInstance();
- Order order = manager.getOrderQueue().poll(); // повар берет заказ из очереди
- System.out.println(String.format("Заказ будет готовиться %d мс для стола №%d", order.getTime(), order.getTableNumber()));
- Thread.sleep(order.getTime()); // готовим блюдо
- Dishes dishes = new Dishes(order.getTableNumber()); // это готовое блюдо
- manager.getDishesQueue().add(dishes);////!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!это решение повар должен ложить в очередь.
- System.out.println(String.format("Заказ для стола №%d готов", dishes.getTableNumber()));
- }
- }
- /*единственный класс где нужно что-то менять*/
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement