Programacion Concurrente
  Filisofos semaforos
 

import Semaforo.*;
public class Filosofo extends Thread {
  int quienSoy = 0;
  SemaforoGeneral tenDer, tenIzq, cont;
  int numeroOperaciones = 10;

  public Filosofo ( int _quienSoy,
       SemaforoGeneral _cont,
                    SemaforoGeneral _tenDer,
                    SemaforoGeneral _tenIzq) {
    quienSoy = _quienSoy;
    tenDer = _tenDer;
    tenIzq = _tenIzq;
    cont = _cont;
  }

  public void run () {
    for (int i=0;i<numeroOperaciones;i++) {
      System.out.println ("Fil¢sofo "+quienSoy+" pensando");
      cont.WAIT();
      tenDer.WAIT ();
      tenIzq.WAIT ();
      System.out.println ("Fil¢sofo "+quienSoy+" comiendo");
      try {Thread.sleep (500);}
      catch (Exception e) {}
      System.out.println ("Fil¢sofo "+quienSoy+" termina de comer");
      tenDer.SIGNAL();
      tenIzq.SIGNAL();
      cont.SIGNAL();
    }
  }
}

 
   
 
Este sitio web fue creado de forma gratuita con PaginaWebGratis.es. ¿Quieres también tu sitio web propio?
Registrarse gratis