Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.ArrayList;
- import java.util.List;
- public class Sala {
- private List<Cliente> clientes = new ArrayList<>();
- private int sillas = 5;
- //THREAD CLIENTE
- //sincronizo sobre monitor, modifica atributo compartido (lista clientes)
- public synchronized boolean entrar(Cliente c) {
- if (this.clientes.size() < sillas) { //si hay lugar
- this.clientes.add(c); //me agrego a la cola de clientes
- this.notify(); //despierto al barbero (el unico que duerme sobre el monitor sala)
- return true; //el cliente pudo entrar
- } else { //si no hay lugar
- System.out.println("No hay lugar en la barberia bro");
- }
- return false; //el cliente no pudo entrar
- }
- //THREAD BARBERO
- //sincroniza sobre monitor, modifica atributo compartido (lista clientes)
- public synchronized Cliente siguiente() {
- while (this.clientes.isEmpty()){ //mientras no haya clientes
- //el thread barbero duerme sobre el monitor de esta instancia de sala,
- //para luego ser despertado por el primer cliente que entre
- this.wait();
- }
- //cuando es despertado, obtiene un cliente para cortarle el pelo
- return this.clientes.remove(0);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement