Destruir uma thread

4 respostas
G

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

4 Respostas

G

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

M

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.

G

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();

}

M

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.
Criado 5 de outubro de 2006
Ultima resposta 5 de out. de 2006
Respostas 4
Participantes 2