public class Persona extends Thread {
private int id;
private Pasillo pasillo;
private Random random;
public Persona(int id,Pasillo pasillo) {
this.id=id;
this.pasillo=pasillo;
this.random=new Random();
}
public void run() {
System.out.println("Persona " + id + " hace fila para entrar.");
try {
int timePermanency=random.nextInt(700-400)+400;
synchronized(pasillo) {
pasillo.entry(id);
System.out.println("Persona " + id + " está dentro del Zoo por " + timePermanency + "ms.");
Thread.sleep(timePermanency);
System.out.println("Persona " + id + " hace fila para salir.");
pasillo.exit(id);
}
System.out.println("Persona " + id + " ha salido del Zoo.");
}catch(InterruptedException e) {
e.printStackTrace();
}
}
}