Executar algo em um intervalo de tempo

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

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.

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

Abraço!

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!!

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.

mas iria ficar no loop direto?

exemplo:

[code] 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) {}
} [/code]

assim funcionaria também?

public static void main(String[] args){ do{ try { Thread.sleep (1000); meuMetodo(); } catch (InterruptedException ex) {} }while(1==1); }