Threads

2 respostas
Guitar_Men

Galera o seguinte…
Estou começando a mecher com threads agora e tenho um programa que roda como serviço sem problemas, preciso criar uma thread que “durma” uma quantidade de x tempo que seria meia noite - hora atual. A minha pergunta é, coloco o sleep dentro do método run da thread ou quando instancio a classe thread ?? Exemplificando

o correto seria assim ??

public static void main(String args[]){
ClasseThread = new ClasseThread().start();
ClasseThread.sleep(tempo); //no caso meia noite - hora atual
}

ou seria assim dentro da thread ?

public void run() {
while(true){
            String horaAtual = new SimpleDateFormat("HH:mm").format(new java.util.Date());
            if (horaAtual.equals("12:00")){
                for(int i = 0; i < 10; i++){
                    System.out.println("funcionaaaa");
                }
            }else{
                try{
                    System.out.println("ainda não carai");
                    sleep(60*1000); //no caso verifico minuto a minuto
                    
                }catch(InterruptedException e){
                    
                }
            }
        }

    }

Não sei se fui claro, mas espero que sim…

Valew galera

2 Respostas

ViniGodoy

O método Thread.sleep() faz a thread atual dormir. Use-o dentro do código que está rodando a thread em questão, ou seja, dentro daquele runnable ali.

ViniGodoy

Talvez esse código, e os dois depois dele (na página 2) iluminem um pouco o seu caminho:
http://www.guj.com.br/posts/list/52964.java#279083

Ele mostra um reloginho. Mas vc pode adaptar para a thread dormir por mais tempo e, ao invés de atualizar uma label, rodar qualquer processamento que vc queira.

Mostra como fazer com threads direto, com o java.swing.timer e com o java.util.timer.

Criado 3 de abril de 2008
Ultima resposta 3 de abr. de 2008
Respostas 2
Participantes 2