Executar algo em um intervalo de tempo

5 respostas
C

Eu preciso executar um método de uma classe minha com um intervalo de tempo para não sobrecarregar o processador, pois o main dessa classe está em um loop continuo…

tem como fazer isso?? ou precisa pegar o Date() atual e verificar depois, mas do mesmo jeito irá sobrecarregar… não tem como não sobrecarregar o processador??

Obrigado

5 Respostas

T
try { Thread.sleep (1000); } catch (InterruptedException ex) {}

Isto dorme aproximadamente 1 segundo (1000 milissegundos). Como isso chama as rotinas de espera do sistema operacional, não sobrecarrega o processador.

Você pode usar um intervalo menor ou maior, só passar um parâmetro diferente.

C

Cara, a solução para o seu problema são as Threads… Estuda a classe Thread!

Abraço!

C

Humm… obrigado pelas respostas !!!

seria assim que tem q usar?

try { Thread.sleep (1000); meuMetodo(); } catch (InterruptedException ex) {}

É que eu preciso disso meio urgente e não tenho tempo de estudar agora, preciso disso no feriado!

Obrigado!!

J

Isto vai fazer que de 5 em 5 minutos sua classe seja chamada, porem uma de cada vez, ou seja uma thread será usada o tempo todo, quando a thread parar de funcionar o schedule dará um tempo de 5 minutos e logo em seguida iniciará o programa novamente.

Obs. a “SuaClasse” tem que extender a “TimerTask”;

Não sei se isto te ajuda.

C

mas iria ficar no loop direto?

exemplo:
public static void main(String[] args){


//valores default de intervalos
int intervalo = 5; // 1 mim

Timer timer = new Timer();
SuaClasse geraDados = new SuaClasse();
do{
timer.schedule(geraDados, new Date(), 60000 * intervalo);
}while(1==1);try { Thread.sleep (1000); meuMetodo(); } catch (InterruptedException ex) {}
}
assim funcionaria também?
public static void main(String[] args){
do{
try { 
Thread.sleep (1000); 
meuMetodo(); 
} catch (InterruptedException ex) {}
}while(1==1);
}
Criado 8 de setembro de 2006
Ultima resposta 8 de set. de 2006
Respostas 5
Participantes 4