Matar uma thread

7 respostas
E

Estou apenas com uma dúvida pessoal…

Depois de executar uma thread … é necessário mata-la???

ou ela morre sozinha???

pq quando for para produção(o programa que estou fazendo) vários usuários vão executa-la simultaneamente… tenho medo de elas executarem e não morrerem…
e ai depois de muitos acessos … servidor não aguentar… será que isso pode acontecer???

tem algum controle que é necessário???/
pq não estou fazendo nada!!

vlwww

7 Respostas

B

Morre sozinha.

Só uma pergunta: Cada usuário vai ter uma thread para si, certo? Se controlar o acesso aos recursos compartilhados por todos, fica tudo bem.

E

Isso cada usuario vai sua trhead…

esse controle de recursos compartilhados que vcs citou, seria com metodos sincronize???

Pq tbm não coloquei nenhum método sincronize!!!

Vc acha q elas sendo executadas ao mesmo tempo… pode ser que os valores de um usuario por exemplo pode ir pra outro usuario???

oq pode acontecer se eu não controlar isso???

vlwwwwww

rogelgarcia

Só complementando o que o colega falou:

Quando o método run retorna, a thread é finalizada…

B

edward.juniorr:
Isso cada usuario vai sua trhead…

esse controle de recursos compartilhados que vcs citou, seria com metodos sincronize???

Pq tbm não coloquei nenhum método sincronize!!!

Vc acha q elas sendo executadas ao mesmo tempo… pode ser que os valores de um usuario por exemplo pode ir pra outro usuario???

oq pode acontecer se eu não controlar isso???

vlwwwwww

Um problema que pode dar é passar a mesma instância de um objeto mutável para duas threads, e as duas mudarem o conteúdo desse objeto. Por exemplo:

class Pessoa {
   String nome;

   Pessoa (String nome) {
      this.nome = nome;
   }

   public void setNome(String nome) {
      this.nome = nome;
   }

   public String toString() {
      return this.nome;
   }
}

class AlteradorDeNome implements Runnable
{
   Pessoa p;
   String outroNome;

   AlteradorDeNome(Pessoa p, String outroNome) {
      this.p = p;
      this.outroNome = nome;
   }

   public void run() {
      p.setNome(outroNome);
   }
}

// Em algum outro lugar:

Pessoa quemSouEu = new Pessoa("João");

AlteradorDeNome alterador1 = new AlteradorDeNome(quemSouEu, "José");
AlteradorDeNome alterador2 = new AlteradorDeNome(quemSouEu, "Maria");

alterador1.start();
alterador2.start();

System.out.println(quemSouEu.toString());

Agora a pergunta, o que vai aparecer no console, João, José ou Maria?

E

rsrsr cara… boa pergunta rsrsrs… acredito q os nomes da pessoa vão se confundir…

como vc faria pra não dar esse problema???

vlwwww cara

E

???

me ajuda ai truta… pelo amor de deus

B

Não dá para ajudar se não sabemos qual o teu problema, nem sabemos se você tem um problema, para começo de conversa.

Para quê usa essas threads? Se elas forem totalmente independentes, não modificarem os mesmos dados, você está salvo. Dê uma procurada por Concorrência e Condições de Corrida se quiser sabe disto mais a fundo.

Criado 15 de abril de 2010
Ultima resposta 16 de abr. de 2010
Respostas 7
Participantes 3