Como posso saber se todas as threads de um threadgroup encerrou a execução?

2 respostas
ronnypeterson

Como posso saber se todas as threads de um threadgroup encerrou a execução? Pois estou desenvolvendo uma sistema de indentificação de digitais usando o GrFinger. Preciso pesquisar em 21000 registros e duas digitais em cada um. tentei fazer como o exemplo da GrFinger mas demora muito (30 s) no pior caso (não encontra), então pensei fazer threads.

Desde já agradeço a atenção de colaboração de tds!

2 Respostas

sergiotaborda

rp.guimaraes:
Como posso saber se todas as threads de um threadgroup encerrou a execução? Pois estou desenvolvendo uma sistema de indentificação de digitais usando o GrFinger. Preciso pesquisar em 21000 registros e duas digitais em cada um. tentei fazer como o exemplo da GrFinger mas demora muito (30 s) no pior caso (não encontra), então pensei fazer threads.

A resposta, como quase tudo relacionado a threads é , não pode.

Se vc executa N threads e tem que esperar que elas acabem então vc precisa fazer join com a thread corrente para que ela só continue quandos as N thread terminaram. É claro que vc não quer saber das threads mas sim dos resultados. em vez disso vc pode usar o padrão ProdutorConsumidor. Um objeto produtor executa em uma thread propria e o consumidor tb. Cada produtor faz um trabalho e envia o resultado a um queue que é lido pelo consumidor. Vc pode criar 2 produtores e um queue especial que liberar quando existirem 2 itens dentro dele. Nesse caso o consumidor dará seguimento ao processo.

G

tem algum exemplo de produtor/consumidor??

Criado 24 de abril de 2008
Ultima resposta 25 de abr. de 2008
Respostas 2
Participantes 3