Criação de múltiplas threads

Boa Noite a todos,

Estou enfrentando um problema aqui para criar múltiplas threads. Bom meu problema é o seguinte, estou desenvolvendo uma função para uma aplicação que é a de pegar a DNS dos sites que o usuário carregar. O problema é que se eu fizer isso site por site vai ser demorado, mesmo pq imaginem acessar por exemplo 100 websites 1 por 1, seria algo demorado.

Dai pensei em utilizar mais de uma thread para realizar essa tarefa, estou tentando criar essas threads dentro de um loop, que divide uma quantidade de sites que será enviado para cada thread, só que não está funcionando, não sei pq, acho que é pq a thread que crio não tem identificação ou não é possível criar thread dentro de um loop.

Estou utilizando o seguinte codigo, dentro de um loop:

 new Thread(new DNS(arrayDeSites)).start();

A classe DNS implementa Runnable.

Alguém sabe pq acontece isso?

Abraço a todos!

Não sei se perdi algum detalhe na sua explicação mas me parece que faltam mais detalhes para poder te ajudar. É perfeitamente válido criar threads dentro de um loop. O que você quer dizer exatamente com não funciona?

Olá amigo, obrigado pelo interesse.

Na verdade acho que consegui resolver o problema. Percebi que as threads são iniciadas mesmo, apenas quando o loop chega ao fim e não no exato momento em que chamo o código que postei acima.

O que estava ocorrendo, que até agora não entendi muito bem, é que toda hora que eu criava uma nova thread, eu chamava o metodo clear(), para a List arrayDeSites. Nessa lista eu ia adicionando os sites ate quando chegasse a hora de envia-lo para a thread, após isso eu eu limpava ele e adicionava mais sites nele…

Só que como as threads eram iniciadas apenas quando o loop terminava percebi que os arrays de sites estavam indo vazios para as threads(problema de referencia), com isso, ao invés deu limpar os arrays eu passei a dar um new no array, assim:

arrayDeSites = new ArrayList<String>();

Aí passou a funcionar. Mas mesmo assim obrigado rodrigo!

Abraços