Barbero durmiente en java

Páginas: 2 (357 palabras) Publicado: 8 de marzo de 2011
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...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Barbero Durmiente
  • Barbero
  • Barbero
  • Barbero
  • Barbero
  • barbera
  • Barbero
  • El barbero de sevilla

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS