Advertisement
Guest User

barber

a guest
Oct 21st, 2014
122
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.17 KB | None | 0 0
  1. import java.awt.*;
  2.  
  3. public class Barber extends Thread{
  4.     int customer;
  5.     boolean stopButton= false;
  6.     String barber;
  7.     TextArea textarea;
  8.     int i;
  9.     WaitRoom wr;
  10.     MyCanvas mycanvas;
  11.     Semaphore s;
  12.     Semaphore delay;
  13.     Semaphore barberGoing;
  14.     MyPanelTop mytop;
  15.     boolean sleep=true;
  16.     boolean awake= false;
  17.     boolean kill =false;
  18.     boolean isFull=false;
  19.  
  20.     Barber(String barber, TextArea textarea, int i, WaitRoom wr, MyCanvas mycanvas, Semaphore s, Semaphore delay, Semaphore barberGoing, MyPanelTop mytop){
  21.         this.barber= barber;
  22.         this.textarea= textarea;
  23.         this.i= i;
  24.         this.wr= wr;
  25.         this.mycanvas= mycanvas;
  26.         this.s= s;
  27.         this.delay= delay;
  28.         this.barberGoing= barberGoing;
  29.         this.mytop = mytop;
  30.     }//end constructor
  31.  
  32.     public synchronized void run(){
  33.             while(true) {
  34.                 try {
  35.                     s.P();                                  
  36.                     isFull = wr.isFull();
  37.  
  38.                     if (wr.isEmpty()) {
  39.                         s.V();                            
  40.                         wr.setBarberGoingToSleep(sleep);    
  41.                         mytop.debugAppend("Barber is going to sleep!");
  42.  
  43.                         delay.P();                          
  44.                         wr.setBarberGoingToSleep(awake);
  45.  
  46.                         s.P();                              
  47.                     }
  48.                     wr.removeCust();
  49.                     mycanvas.moveToChair();  
  50.  
  51.  
  52.                     if (isFull) {
  53.                         delay.V();          
  54.                     }
  55.  
  56.                     s.V();                                  
  57.  
  58.  
  59.                                                            
  60.                     sleep(mytop.getCutTime());
  61.                     mycanvas.showCustomerLeave();
  62.  
  63.  
  64.                     if(kill){
  65.                         barberGoing.P();
  66.                     }
  67.  
  68.  
  69.                 } catch (Exception e) {
  70.                     return;
  71.                 }
  72.  
  73.             }
  74.     }//end run
  75.  
  76.     public void barberButton(boolean action){this.kill = action;}
  77.  
  78.  
  79. }//end Barber
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement