Thread ( Restart )

3 respostas
makecio

Bom dia a todos.

Estou aprendendo Thread, e cheguei a um problema.

Criei a seguinte thread

boolean x = true;
Thread t = new Thread(new Runnable() {
        public void run() {
            while(x)
            {
                
                try
               {
                    atualiza(); // Chama Método
                    Thread.sleep(3000); // Dorme 3 segundos
                    x = false; // Para a Thread
                } catch (InterruptedException ex) {
                    Logger.getLogger(TelaInicial.class.getName()).log(Level.SEVERE, null, ex);
                }
            }
        }
        });
t.start();

Desde modo eu consigo iniciar a Thread executar os procedimentos normalmente.

Mas ao parar a Thread com a variavel X=FALSE; Se eu tentar iniciar ela novamente com o meotdo start(); ela não inicia.

Acredito que esse não seja o procedimento certo. Qual seria então a forma correta para iniciar a mesma Thread novamente?

3 Respostas

E

Uma vez que uma thread saiu do seu método “run” ela é considerada morta (você pode esperar por sua morte usando o método “join”).

Você pode criar um outro objeto Thread, mas não pode ressuscitar uma thread.

Isso é feito dessa maneira porque em vários sistemas operacionais você não pode ressuscitar uma thread, e como a classe java.lang.Thread é um encapsulamento dessa primitiva do sistema operacional, então ela se comporta dessa maneira.

makecio

Mto interessante. Não sabia que uma Thread não podia ser ressuscitada.

Conseguiria me passar um exemplo pra esperar a Thread morrer? (JOIN)

Mesmo que eu consiga esperar ela morrer, como vou conseguir que ela refaça os procedimentos se ela ja morreu, Se eu não posso ressucita-la.

Obs. To me sentindo um assassino. usahsuhaushau

lelodois

O que vc precisa?

Recomendo fortemente o uso de quartz…

http://quartz-scheduler.org/

abs

Criado 12 de dezembro de 2011
Ultima resposta 12 de dez. de 2011
Respostas 3
Participantes 3