Delay

chava23
15 de Diciembre del 2001


Hola me gustaria que alguien me dijiera como le puedo hacer que se retarde le programa sin utilizar un thread ok gracias!!!

Oblongo
15 de Diciembre del 2001
Aquí te pongo un ejemplo que detiene durante un cierto tiempo la ejecución de un programa, sin usar Threads. En mi ordenador tarda aprox. 1 segundo en acabar, pero hay muchos factores que influyen, velocidad del procesador, S.O., las tareas que hay en el sistema, que no está dentro de una función (Esto aumentaría el tiempo), etc...
Lo que tienes que hacer es ir cambiando el valor de la var. estipulado, hasta conseguir el tiempo deseado.

import java.lang.*;

class sleeper {

public static void main (String args[]) {
long estipulado = 500; // las vueltas que dará el bucle.

long inic = System.currentTimeMillis(),fin;

do {
fin=System.currentTimeMillis();
} while (fin-inic <= estipulado);

System.out.println ("Fin");
}
}

Lo puedes meter dentro de una función, si lo vas a usar más de una vez.

Teóricamente se podrían contar milisegundos, pero yo el bucle mínimo que he conseguido ha sido de 60 milisegundos. Si necesitas menos tiempo creo que en java es difícil de conseguir, quizás currándote un método nativo en C.