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 :D

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 :P ) 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! :D

  1. 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 ;-)

  2. Espero que no uses el delay para tratar de controlar el acceso a secciones críticas :P XDDD

  3. 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

  4. 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

    • Cesar
    • 24/09/09

    Exelente mini tutorial sensillo y claro me ha servido de mucho

    Gracias :)

    • GrandeC.Mauricio
    • 12/10/09

    Muchas gracias por el minitutorial. Muy bueno y facil de entender. Me ha servido ya que es justo lo que buscaba

  5. Sr …

    practico, excelente….

    gracias

    • Riot!
    • 15/10/10

    Graicas, sencillo y con mucha utilidad. :)

  6. 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

    • david
    • 30/06/11

    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

    • Anónimo
    • 23/01/12

    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

  1. Aún no hay trackbacks

Deja un comentario

Fill in your details below or click an icon to log in:

Logo de WordPress.com

You are commenting using your WordPress.com account. Log Out / Cambiar )

Twitter picture

You are commenting using your Twitter account. Log Out / Cambiar )

Facebook photo

You are commenting using your Facebook account. Log Out / Cambiar )

Connecting to %s

Seguir

Get every new post delivered to your Inbox.