Barbero durmiente en java

Solo disponible en BuenasTareas
  • Páginas : 2 (357 palabras )
  • Descarga(s) : 0
  • Publicado : 8 de marzo de 2011
Leer documento completo
Vista previa del texto
class Barbero extends Thread {

private Salon s;

public Barbero(Salon s) {
this.s = s;
}

public void run() {
while (true)
quiereCortar();
}public void quiereCortar() {
System.out.println("el Barbero está libre, esperando por un cliente");
s.cliente.down(); // esperando un cliente.
s.mutex.down(); //silla libres.esperar--; // decrementa cola de cliente
s.barbero.up(); // pemirte al siguiente cliente
System.out.println("El Barbero sentó a un cliente en su silla (Sillasocupadas: " + s.esperar + "/" + s.numSillas + ")");
s.mutex.up(); // silla ocupada
System.out.println("Barbero cortando cabello");
s.cortar.down(); // cortando
}


}class Cliente extends Thread {

private Salon s;
private int i;

public Cliente(Salon s, int i) {
this.s = s;
this.i = i;
}

public void run() {
while(true) {
System.out.println("Al Cliente " + i + " le está creciendo el cabello ");
try {
sleep((int)(Math.random() * 50000)); // durante tiempo aleatorio} catch (InterruptedException e) { }
System.out.println("Cliente " + i + " necesita un corte de cabello");
quiereCorte();
}
}


public void quiereCorte() {s.mutex.down();
if (s.esperar < s.numSillas) {
s.esperar++; // uno o más clientes esperando
System.out.println("El Cliente " + i + " está esperando en la sala.(Sillas ocupadas: " + s.esperar + "/" + s.numSillas + ")");
s.cliente.up(); // incremento cliente en espera
s.mutex.up();
s.barbero.down(); // espera la silla delbarbero
System.out.println("Cliente " + i + " está recibiendo su corte de cabello");
try {
Thread.sleep((int)(Math.random() * 25000)); //tiempo que demora el...
tracking img