Threads, como usar um destroy em uma thread específica?

E ai galera, espero que possam me ajudar, estou com um problema, não sei como eu poderia usar um destroy ou algum outro método da classe Thread em uma thread específica. E isso chamando de uma outra thread.

Por exemplo, crio 10 threads, com nomes padrão de Thread-1, Thread-2, etc.
E aí crio mais uma thread e com essa thread dar um destroy na thread 5. Como faço isso? Tentei algumas coisas mas não funcionou… Tentei armazenar uma referência de todas as threads, armazenar o nome…etc Quem era destruído era a última thread, ou seja, a thread que deveria dar o comando para destruir a thread 5 do meu exemplo.

Qualquer ajuda eu agradeço.

HUmmm… grande problema… tambem preicos fazer um trabalho de facul com threads… se conseguir algom posto aki!!

Abracos!

Fala kra,

Bom… pelo que o próprio JAVA tutorial aconselha a fazer é setar o ponteiro da Thread como nulo, e dentro dela (no metodo run) vc verificar a validade deste ponteiro (num while, por exemplo)… e só executar alguma tarefa se o tal ponteiro for diferente de nulo…

Uma vez q ela nao rode, o proprio garbage collector ira remove-la da memoria, depois de algum tempo…

Não sei se entendeu o q quiz dizer, mas dá uma olhada em:
http://java.sun.com/docs/books/tutorial/essential/threads/lifecycle.html

No tópico: “Stopping a Thread”

[]'s

pesquisem pelo interrupt() e o isInterrupted()

vejam na API e no PJ que eu já postei como fazer isto.

Valeu, consegui fazer funcionar usando aquilo de modificar a variável boolean da classe, daí ela se encerra sosinha e de maneira limpa.

Opa, como é que voce fez?? :roll:
Posta um exemplo ai!!!

Abracos!

No meu caso eu tinha uma variável global da classe que extendia a thread, e no método run() eu tinha um laço infinito aí é só modificar essa variável que o programa se encerra sosinho.

public class classe extends Thread
{
      boolean a = true;

      public void run()
      {
             while(a)
             {
                    //código aqui

Valew! :cool:

você não precisava declarar a variável “a”. era só usar no lugar dela (dentro do while) o isInterrupted() e o cliente que quiser terminar esta thread deveria chamar o interrupt().