Duvida Thread

3 respostas
G

Bom pessoal 2 thread e o meu main tem que ficar repetindo elas !!

Tipo eu starto as 2 thread ai elas são executadas no final da execusão das duas eu tenho que fazer um loop ou um “metodo” restart para fazer elas se restartarem so que eu n tenho a minima ideia de como fazer isto vcs poderiam me ajudar ?

3 Respostas

felipealbuquerque

Um loop (while ou for) não poderia ser uma solução?

G

Não pq quando eu dou star na primeira vez que eu faço um loop com for ou while a segunda vez que eu passo ele n restart a thread , a menos que eu estancio ela novamente mais isto esta paulando no programa !

ViniGodoy

Uma vez terminada, uma thread não pode ser “restartada”.

Você terá que instanciar um novo objeto da classe thread. Mas não vejo razãop para isso “paulear” sua aplicação.

Se vc vai iniciar/finalizar muitas threads, o ideal é usar o ExecutorService, pois ele implementa um pool de threads para você.
Assim, mesmo que seu Runnable termine, a thread em si não é finalizada.

Exemplo:

Crie um pool sem limites de threads. Se quiser limitar, use o FixedThreadPool

private ExecutorService threadPool = Executors.newCachedThreadPool();

Use o método submit para iniciar o seu Runnable numa das threads do pool
O método fica bloqueado até que existam threads disponíveis.
No caso do cachedThreadPool, não há limites de threads. As threads morrem se, depois de um minuto, não receberem runnable nenhum.

threadPool.submit(umRunnable());
Criado 8 de novembro de 2007
Ultima resposta 8 de nov. de 2007
Respostas 3
Participantes 3