La Web del Programador: Comunidad de Programadores
 
    Pregunta:  45793 - ¿CóMO PAUSAR UN PROGRAMA?
Autor:  Bruno A.
Tengo un bucle que se repite X veces, pero quiero que entre repetición y repetición transcurran 2 segundos (o la cantidad de tiempo que yo desee). ¿Cómo debo hacerlo?

PD: He probado a crear mi propia función esperar(), usando System.nanoTime y MillisTime, pero claro, como estoy continuamente mirando si han transcurrido 2 segundos, el uso de la CPU es del 100%. Además, en Windows XP tengo que bajarle la prioridad a la aplicación para que no pegue tirones.

Gracias.

  Respuesta:  christian adam
Mira, si utilizas hilos en JAVA existe una funcion: sleep(int milisegundos) que te permite dormir la aplicacion durante los milisengundos detallados..

suponte que estas trabajando en la clase BucleConTiempo...
entonces tenes...

public class BucleConTiempo extends Thread // importante!!
{
..............
............... tus acciones.............

// ahora vamos al bucle del que vos estabas hablando...

Lo que vos estas pidiendo se puede solucionar implementando en tu aplicacion de JAVA, HILOS....
Si no sabes manejar hilos, no importa.. básicamente lo que podes hacer para lograr lo que queres es utilizar el metodo
sleep(int milis) al cual le pasas por parametro la cantidad de milisegundos que queres que el programa se "duerma".. el metodo
sleep es tipico de todo hilo.. y lo podes utilizar al extender la clase con la que trabajas de la clase THREAD (HILO)..

supongamos que esta es la clase con la que estas trabajando:

public class BucleConTiempo extends Thread
// importante que diga extends Thread
{
public BucleConTiempo(int milis, int vueltas)
// por parametros el tiempo que tardara una vuelta
//y el numero de vueltas a realizar
{
. . . . tus acciones . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . . .

// aca llegamos al bucle al que necesitas ponerle un intervalo de tiempo
// entre vuelta y vuelta...

for(int i=0; i<vueltas; i++)
{
sleep(milis); //en cada vuelta el programa
//dormira tantos milisegundos..
}
. . . .
. . . .
}
}

Ojala te sriva..

saludos...