Buscar en ELMED

domingo, 6 de mayo de 2012

Temporizador Usando Thread en java

Ya hablamos acerca de los hilos en nuestro post anterior, ahora sin tantas vueltas miremos como funciona un temporizador hechos con hilos en java.
Temporizador o Cuenta regresiva: Es un hilo que tiene como parámetro el tiempo, se ejecuta con un ciclo for infinito, decrementa unas variables como lo son los segundos,minutos o horas según sea el caso  los muestra en pantalla y  luego se echa a dormir un segundo y después continua haciendo el mismo proceso siempre y cuando las variables anteriormente dichas tengan tiempo.
/*
Clase que hereda de la clase Thread, usada
*Para hacer un temporizador
*Autor: LBVP
*Fecha:06-05-2011
*Licencia :GNU
 */
public class Post2 extends Thread{     
    public Post2 () {// Contructor porque la clase es heredada 
        super();
    }
private static int nuMin=0;//El Contador de minutos
private static int nuSeg=0;//El Contador de de segundos
private static int nuHora=0;//El Contador de Horas      
public void run() {
           try {//si ocurre un error al dormir el proceso(sleep(999))
            for (; ;){//inicio del for infinito          
              if(nuSeg!=0) {//si no es el ultimo segundo
                   nuSeg--;  //decremento el numero de segundos                                  
                }else{
                    if(nuMin!=0){//si no es el ultimo minuto
                        nuSeg=59;//segundos comienzan en 59
                        nuMin--;//decremento el numero de minutos
                    }else{
                        if (nuHora!=0){
                            nuHora--;//decremento el numero de horas
                            nuMin=59;//minutos comienzan en 59
                            nuSeg=59;//segundos comienzan en 59
                        }else{                         
                          break;//seacabo el tiempo fin hilo  
                        }
                    }
                }               
            System.out.println(nuHora+":"+nuMin+":"+nuSeg);//Muestro en pantalla el temporizador
             sleep(998);//Duermo el hilo durante 999 milisegundos(casi un segundo, quintandole el tiempo de proceso)
            }            
        } catch (InterruptedException ex) {
             System.out.println(ex.getMessage());
        }//Fin try               
 }
    public static void main(String[] args) {
      //Parametrizo el tiempo
      Post2.nuHora=0;
      Post2.nuMin=1;
      Post2.nuSeg=8;
      Post2 Temporizador= new Post2();// Crear una Instancia de la clase
      Temporizador.start();//inicializa el hilo
    }    
}

No hay comentarios:

Publicar un comentario