Passando parametros para uma Thread

3 respostas
B

Pessoal pls um help…

Criei algumas threads que copiam tabelas de um bd para outro.
Chamo elas com o método xxx.start() e depois xxx.join() para saber
quando todas finalizaram.

Bom… até ai funciona, o tempo de cópia ficou muito bom, até que
percebi que as minhas classes Thread são identicas :roll: (ORELHUDO)
só muda o SQL interno.

Estou tentando agora descobrir uma maneira de passar estes SQLs
como parametro para minha classe thread (única agora) no meu método xxx.start(strsql) porem não consigo passar parametros.

Com o método xxx.run(strsql), ele funciona mas não dispara os processos simultaneamente e sim sequencialmente.

Valeu pela ajuda !!!

3 Respostas

E

realmente chamar run() não executa o processo como uma linha de execução independente.
E se você criar um método setSQL(String sql) e chamá-lo antes de dar um start()?

B

Rapazzzz é isso mesmo, já testei inclusive !!!

Valeu mesmo a força !!!

Luiz

B

Pessoal,

Mais uma ajuda, estou apanhando que nem gente grande:

Tteste é minha thread, eu leio os comandos SQL que tenho
que executar a partir de meu objeto “ObjSql”, que coloquei dentro
de uma lista.

No momento que chamo o meu teste.join() o programa não espera todos os processos terminarem, e sim somente o primeiro a terminar (quero continuar o programa mas preciso que as thread terminem antes). Como posso resolver isso ?

Mais uma vez obrigado !!

Tteste teste = null;

   for (int i = 0; i < lista.size(); i++) {
    teste = new Tteste();
    ObjSql myobj = (ObjSql) lista.get(i);
    teste.setSql(myobj.getSql);
    teste.start();
   }

  try {
     // ****   PROBLEMA *******
     teste.join();
  }
  catch(Exception e)  {
     System.out.println("Erro copia = " + e);
  }

  // Fim cópia
  System.out.println("Fim do programa");
Criado 10 de maio de 2004
Ultima resposta 11 de mai. de 2004
Respostas 3
Participantes 2