executar algo em um intervalo de tempo  XML
Índice dos Fóruns » Java Avançado
Autor Mensagem
chackal_sjc
Thread.start()

Membro desde: 07/04/2006 13:55:29
Mensagens: 46
Localização: São José dos Campos, SP
Offline

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

http://chackalsjc.wordpress.com
https://sourceforge.net/projects/tecnotel/
thingol
Moderador

Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline



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.
[WWW]
cassio
GUJ Master
[Avatar]

Membro desde: 19/06/2006 08:25:28
Mensagens: 1336
Localização: Caieiras-SP
Offline

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

Abraço!

Cássio Marques

Blog
chackal_sjc
Thread.start()

Membro desde: 07/04/2006 13:55:29
Mensagens: 46
Localização: São José dos Campos, SP
Offline

Humm... obrigado pelas respostas !!!

seria assim que tem q usar?


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

Obrigado!!

http://chackalsjc.wordpress.com
https://sourceforge.net/projects/tecnotel/
julianoeustaquio
JavaBaby
[Avatar]

Membro desde: 19/05/2006 10:37:11
Mensagens: 76
Offline


public static void main(String[] args){


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

Timer timer = new Timer();
SuaClasse geraDados = new SuaClasse();
timer.schedule(geraDados, new Date(), 60000 * intervalo);



}



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.
chackal_sjc
Thread.start()

Membro desde: 07/04/2006 13:55:29
Mensagens: 46
Localização: São José dos Campos, SP
Offline

mas iria ficar no loop direto?

exemplo:


assim funcionaria também?

http://chackalsjc.wordpress.com
https://sourceforge.net/projects/tecnotel/
 
Índice dos Fóruns » Java Avançado
Ir para:   
Powered by JForum 2.1.8 © JForum Team