[RESOLVIDO] Como finalizar uma thread?

3 respostas
G

Olá galera, estou tendo dificuldades para finalizar uma thread.

Eu gostaria de encerrar de vez a thread, e não fazer uma espécie de pause, onde ela pode retomar a execução em algum momento.

Tentei usar thread.destroy() mas deu erro.

Usei então thread.stop() e thread.suspend(). Elas param uma thread como descrevi? Qual a diferenças desses dois métodos?

Quando executo meu programa com esses dois métodos anteriores me é enviado este aviso:

Note: Frame.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.

Pq isso acontece?

Desde já agradeço.

3 Respostas

ViniGodoy

Só existe uma maneira segura de finalizar uma thread. Faça com que ela saia do método run().

É uma péssima idéia “destruir” uma thread (por isso o método foi deprecated), pois ela deixaria leaks de recursos, que nem sequer poderiam ser limpos por você, nunca mais. Como por exemplo, descritores de arquivo aberto, ou locks de sincronização.

Faça direito, altere alguma variável na thread e periodicamente teste por ela. SE ela indicar que a thread tem que morrer, simplesmente saia do método run().

G

Obrigado pela informação cara… =)

makecio

Aproveitando o topico sera que alguem ai poderia explicar definidamente o que é um Thread?
Ja ouvi em varios lugares aqui no forum sobre isso, mas fico boiando.

Seria algo como ponto de parada do programa , algo assim?

Criado 6 de novembro de 2010
Ultima resposta 7 de nov. de 2010
Respostas 3
Participantes 3