Semaforos java

Solo disponible en BuenasTareas
  • Páginas : 2 (380 palabras )
  • Descarga(s) : 0
  • Publicado : 30 de noviembre de 2011
Leer documento completo
Vista previa del texto
Proyecto 2

En el proyecto se utilizo una serie de semáforos, creados en el main untilizando los semaforos nativos de java asignando el tamaño de la cola según la cantidad de niños que puede estaren esa estación en un momento dado, estos semaforos se usan para representar las estaciones (Bandeja, Mesa, Fregadero), e hilos para representar a los niños. En el hilo se programo un método quecrea un numero aleatorio para representar los tiempos aleatorios, en el método run del Hilo se hace que este se duerma un tiempo aleatorio para representar el tiempo que tarda el cocinero en colocar unperro caliente en la bandeja, luego el hilo entra el primer semáforo este se duerme para simular el tiempo aleatorio que pasa en la bandeja, y así lo hace en las demás estaciones. En cada estaciónse imprime por pantalla una notificación de que se está realizando la acción por ejemplo: "Se está Comiendo".

Clase Main:
package operativos;

/**
*
* @author Zir
*/

importjava.util.concurrent.Semaphore;

public class Main
{

public static void main (String args[])
{
Semaphore Bandeja = new Semaphore(1);// Simula la bandeja de perros
Semaphore Mesa = newSemaphore(3);// Simula la mesa donde se come
Semaphore Fregadero = new Semaphore(2);// Simula el Fregadero donde se limpia

for (int i=1; i<=10; i++)
{
new nino("Niño "+ i,Bandeja, Mesa, Fregadero).start();
}
}
}

Clase Nino:
package operativo;

/**
*
* @author Zir
*/
import java.util.concurrent.Semaphore;

public class nino extends Thread
{
privateString Nombre;
private Semaphore Bandeja;
private Semaphore Mesa;
private Semaphore Fregadero;

public nino(String nombre, Semaphore bandeja, Semaphore mesa, Semaphore fregadero){
Nombre = nombre;
Bandeja = bandeja;
Mesa = mesa;
Fregadero = fregadero;
}

@Override
public void run()
{...
tracking img