Delay en Java
Otra entrada breve para dejar una receta que muchas veces tengo que andar buscando por ahí porque no me suelo acordar. Ésta vez es sobre programación, cosa que igual no interesa mucho a los que siguen éste blog por los contenidos sobre linux (que viene a ser el tema principal del blog).
De hecho, por si a alguien no le interesa mucho la programación voy a cortar aquí ya la parte del post que se ve en portada, así será más cómodo ver el resto de las entradas
Lo que quiero “recordar” es como se hace un delay, un retardo, en java. En los lenguajes “de toda la vida” (pascal, ada, c, …) solía ser un simple delay(n), donde n eran segundos o milisegundos. En java la instrucción también es directa pero nunca me acuerdo en que clase está (y mira que es lógico que esté ahí xDDD). Total, que la instrucción es tan siempre como:
Thread.sleep(n); // donde n son milisegundos
Dejo un ejemplo rápido (escrito de memoria, para que nos digáis nada si al copiar&pegar no funciona
) de un main que saluda, espera 5 segundos y se despide:
public class main {
public static void main(String args[]) {
System.out.println("Hola...");
Thread.sleep(5000);
System.out.println("Adios!");
}
}
Sencillo, ¿verdad? Pues no tanto, que eso si lo probáis no compila porque es necesario tratar una excepción por si el sleep falla, la forma correcta es ésta:
public class main {
public static void main(String args[]) {
System.out.println("Hola...");
try {
Thread.sleep(5000);
} catch (InterruptedException ex) {
// aquí tratamos la excepción como queramos, haciendo nada, sacando por pantalla el error, ...
}
System.out.println("Adios!");
}
}
Ahora si, ale, nada más, ya no me hará falta tirar de google para encontrar ésto nunca más!
Recuerdo en mis primeros pasos en Java que gasté algo de tiempo en buscar el clásico, querido y tan necesario delay.
Buena ayuda memoria
Espero que no uses el delay para tratar de controlar el acceso a secciones críticas
XDDD
Luciano, por eso lo he apuntado, que hoy todavía me acuerdo pero… se me hace raro eso de usar la clase Thread para hacer un delay xDDDD
JoseK, pues no se me había ocurrido, pero seguro que habría colado en alguna práctica de concurrente…. xDDDDD
gracias no me la conocia esta, espero qeu exista una funcion o metodo para hacer el limpiado de pantalla en java como lo era el “clrscr()” de C
de todas maneras muchas gracias por el buen dato del delay
Exelente mini tutorial sensillo y claro me ha servido de mucho
Gracias
Muchas gracias por el minitutorial. Muy bueno y facil de entender. Me ha servido ya que es justo lo que buscaba
Sr …
practico, excelente….
gracias
Graicas, sencillo y con mucha utilidad.
Gracias : ) me sirvió mucho. Aunque no era necesario, estuve mucho tiempo con la curiosidad de cómo usarlo en java. Lo agregué en un programa de la escuela solo para que se viera mas bonito xD
estoy tratabdo de hacer una bandera con etiquetas pero quiero q se vea cuando se va pintado cada etiqueta y a lo ultimo poner una imagen del escudo de mexico, porfavor ayuda
Te tengo una pregunta, si yo quiero por ejemplo encender un led o un motor por 2 segundos puedo usar ese mismo Thread.sleep(2000) y luego apagarlo?
Encender motor
Tenerlo encendido por 2s
Apagar motor