Advertisement
Guest User

Untitled

a guest
Nov 21st, 2019
116
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.15 KB | None | 0 0
  1. import java.util.ArrayList;
  2. import java.util.List;
  3.  
  4. public class Sala {
  5.     private List<Cliente> clientes = new ArrayList<>();
  6.     private int sillas = 5;
  7.    
  8.    
  9.     //THREAD CLIENTE
  10.     //sincronizo sobre monitor, modifica atributo compartido (lista clientes)
  11.     public synchronized boolean entrar(Cliente c) {
  12.         if (this.clientes.size() < sillas) { //si hay lugar
  13.             this.clientes.add(c);  //me agrego a la cola de clientes
  14.             this.notify();  //despierto al barbero (el unico que duerme sobre el monitor sala)
  15.             return true; //el cliente pudo entrar
  16.         } else { //si no hay lugar
  17.             System.out.println("No hay lugar en la barberia bro");
  18.         }
  19.         return false; //el cliente no pudo entrar
  20.     }
  21.    
  22.    
  23.     //THREAD BARBERO
  24.     //sincroniza sobre monitor, modifica atributo compartido (lista clientes)
  25.     public synchronized Cliente siguiente() {
  26.         while (this.clientes.isEmpty()){ //mientras no haya clientes
  27.             //el thread barbero duerme sobre el monitor de esta instancia de sala,
  28.             //para luego ser despertado por el primer cliente que entre
  29.             this.wait();
  30.         }
  31.         //cuando es despertado, obtiene un cliente para cortarle el pelo
  32.         return this.clientes.remove(0);
  33.     }
  34. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement