package multiplesprocesos;
import java.util.Random;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
*
* @author Rafa
*/
public class MultiplesProcesos implements Runnable{
private final static Random generador = new Random();
private final String nombreProceso;
private final int tmpInactico;
public MultiplesProcesos(String nombre){
nombreProceso = nombre;//establece nombre del proceso
//tiempo de inactividad aleatorio de 0 a 5 segundos
tmpInactico = generador.nextInt(5000);//milisegundos
}
//EL metodo run contiene el codigo que ejecutara el subproceso
@Override
public void run() {
System.out.printf("%s va a estar inactivo el tiempo %d milisegundos.\n", nombreProceso, tmpInactico);
try {
Thread.sleep(tmpInactico);
} catch (InterruptedException ex) {
Logger.getLogger(MultiplesProcesos.class.getName()).log(Level.SEVERE, null, ex);
}
System.out.printf("%s Termino su actividad\n", nombreProceso);
}
public static void main(String[] args) {
System.out.println("Creacion de subprocesos");
//Se crea los subprocesos con un nuevo objeto Runnable
Thread subproceso1 = new Thread(new MultiplesProcesos("proceso1"));
Thread subproceso2 = new Thread(new MultiplesProcesos("proceso2"));
Thread subproceso3 = new Thread(new MultiplesProcesos("proceso3"));
System.out.println("Subprocesos creados");
//Inicia los subprocesos y los pone en estado de ejecucion
subproceso1.start();
subproceso2.start();
subproceso3.start();
}
}