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??
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
cassio
Cara, a solução para o seu problema são as Threads… Estuda a classe Thread!
É que eu preciso disso meio urgente e não tenho tempo de estudar agora, preciso disso no feriado!
Obrigado!!
J
julianoeustaquio
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
chackal_sjc
mas iria ficar no loop direto?
exemplo:
publicstaticvoidmain(String[]args){//valores default de intervalosintintervalo=5;// 1 mimTimertimer=newTimer();SuaClassegeraDados=newSuaClasse();do{timer.schedule(geraDados,newDate(),60000*intervalo);}while(1==1);try{Thread.sleep(1000);meuMetodo();}catch(InterruptedExceptionex){}}