Como paro um Thred já startado?

5 respostas
M

Galera,

To precisando parar um thread em minha aplicacao ja startada.

Obrigado.

5 Respostas

GiancarloBraga

Como assim?
Acho que no seu caso basta usar o método stop().

M

Startei normal a thread, funciona normal, porem quero parar ela, e nao funciona o t.stop();

Daniel_Quirino_Olive

http://java.sun.com/j2se/1.4.2/docs/guide/misc/threadPrimitiveDeprecation.html

ViniGodoy

GiancarloBraga:
Como assim?
Acho que no seu caso basta usar o método stop().

Péssima idéia. O método stop() está deprecated e pode fazer sua aplicação travar de maneira realmente feia.

Vamos reforçar primeiro um conceito. As threads terminam quando saem do método run().
Então, basta programar um código que garanta que isso irá acontecer.

Se a sua thread estiver travada, esperando por IO por exemplo, então não há muito o que fazer. Por isso, sempre dê preferência para métodos interruptíveis ou que usem algum tipo de timeout.

Sempre que a thread está num wait ou sleep, é possível interromper esse wait ou sleep através do método interrupt. Quando o método interrupt é chamado, tanto o wait quanto o sleep lançam uma interrupted exception. Nesse caso, capture a excessão e faça com que seu código saia do corpo da thread.

Dê uma lida nesses tópicos, que também podem te ajudar:
http://www.guj.com.br/posts/list/52481.java#276136
http://www.guj.com.br/posts/list/57781.java

GiancarloBraga

Obrigado por avisar sobre o método stop().
Eu fui na dedução usando o Eclipse para ver se tinha algo que parava Thread e acabei achando esse. Não sabia que era má idéia. Agora já sei, graças a vocês! Valeu mesmo.

Consultarei mais sobre o assunto.

Abraço.

Criado 25 de agosto de 2007
Ultima resposta 26 de ago. de 2007
Respostas 5
Participantes 4