Destruir uma thread

Pessoal, acho que essa dúvida é simples…

tenho um jogo onde ele cria 2 ou 3 threads, e ao final, eu tenho a opção de reiniciar o jogo, mas pra ficar legal, eu precisaria destruir as threads existentes, como eu faço isso, apenas atribuindo null para cada uma?

valeu

Gabriel

Aí pessoal, será que alguém saberia responder esta questão?
tipo, eu acho que o ideal seria destruir a thread, mas se nao for possível, pelo menos chegar se ela já existe e dessa forma não criá-la novamente…

valeu,
Gabriel

coloca null, ou simplesmente cria o novo objeto thread com a mesma referência, o objeto que estava sendo referenciado antes não vai mais possuir a referência e vai estar apto pro garbage collector, o que não quer dizer que ele vai ser pego.

kra, vc poderia explicar melhor, é que sou meio ignorante nesse assunto… se eu simplesmente colocar thread = null, eu estou liberando o processamento dessa thread? tipo, pq depois eu faria Thread t = new Thread(this), ou seja, pelo que eu entendi, se eu atribuir null para t, qndo eu instanciar uma nova Thread irá apontar para o mesmo objeto, é isso?

Não entendi muito bem…

Ex.: do meu codigo:

public final void start(int recordeAtual){
isPlay = true;
continuarJogando = false;
this.recordeAtual = recordeAtual;

t = new Thread(this);
t.start(); 

}

Thread t = new Thread(this); <-- executando este objeto thread
Thread t = new Thread(this); <-- executa este objeto thread, não mais o de cima.
Você está utilizando a mesma referencia pra outro objeto, como o primeiro objeto não pode mais ser acessado por ninguem, porque ele não tem mais referencia então ele deixa de existir. (pode ser coletado pelo gc).

Aconteceria mais ou menos isso:
int a=5;
a=2;
System.out.print(a);
O resultado é 2 , tu pode acessar ainda o 5 ? não, porque não tem como “pegar a referencia” dele devolta, então ele pode ir pro garbage colector.
Exemplo meio tosco mas acho que da pra entender assim.