Como eu faço para eliminar essas 100 threads de uma vez, na minha ignorância tentei usar o System.gc(), porém não consegui liberar a memória. Como posso liberar a memória usada por essas threads??
Elas vão morrer quando acabar a execução do método run()
S
sene
Então não existe um meio de derrubá-las antes do fim do run() :?:
D
dicabeca
da um headshot nele hhehe brincadeira, po tu quer matar o processo c for false é isso ?
ops desculpa nao vi o “ignorem o while(true)”
S
sene
ahuahauhaua boa
Olhem o código inteiro, e rodem ele é bem bacana. Eu quero liberar memória num dado momento, pois estou executando um loop infinito. E queria saber se tem como fazer isso mesmo dentro desse loop.
tem como fzr sim mais nao lembro como c faz,e o material esta na minha casa qnd chegar vou dar uma olhada e te respondo c ainda nao tiver resolucionado,enquanto isso da uma olhada nesse site http://www.devmedia.com.br/articles/viewcomp.asp?comp=4459
S
sene
Valew
A
andreymb
Se em vez de usar Threads diretamente você utilizar a classe ExecutorService do pacote java.util.concurrent você pode resolver isso facilmente. Além disso dá para usar um pool de threads, o que deixa bem mais leve. Bem tem várias vantagens em usar as classes deste pacote. Dá uma olhada em http://java.sun.com/docs/books/tutorial/essential/concurrency/index.html
Espero ter ajudado.
F
fabiofalci
Bem bacana o efeito!
Sobre o teu código.
Primeiro eu colocaria um
Thread.sleep(300);
No teu while(true) pra nao matar o teu processador, o valor ali tu pode variar…
Já as threads, tu pode limitar elas, em 100 como tu esta fazendo no teu código, mas dai tu não cria
mais e apenas desenha elas novamente em cima e deixa cair!
Assim tu não se preocupa com System.gc()
A
andreymb
Fiz algumas alterações no código usar o um ThreadPoolExecutor, limitando o npumero de threads a 2000.
Dá uma lida na discussão toda do tópico, que tem tema e a dúvida exatamente igual a sua…
V
ViniGodoy
sene:
Eu não consegui compilar seu código. O compilador retorna a seguinte mensagem:
‘(’ or ‘[’ expected; e acusa new ArrayList ^ ();
Por que será?
Verifique se você está rodando com Java 5 ou superior. Pelo visto, seu IDE acha que é Java 4 ou inferior.
S
sene
[quote=ViniGodoy]
ffranceschi:
Dá uma lida na discussão toda do tópico, que tem tema e a dúvida exatamente igual a sua…
O velho problema de ir só criando um tópico… :oops:
Foi mal :?
V
ViniGodoy
Ops… nem era uma crítica… embora relendo pareceu. Eu só ressaltei pra vc ter certeza de que o tópico podia te ajudar, já que se tratava da mesma coisa. hehehehe
É que muita gente não clica nos links que a gente passa…
S
sene
Sem problemas, eu entendo isso. Já faz um tempo que participo de foruns e sei que é importante a organização e a não fragmentação do conhecimento e também sou contra ficar criando tópicos sem pesquisar direito. Mas, às vezes escapa :roll:
Abraço 8)
S
sene
ViniGodoy:
Verifique se você está rodando com Java 5 ou superior. Pelo visto, seu IDE acha que é Java 4 ou inferior.
=D
Boa garoto, meu path tava indicando para uma versão 1.4 que também tenho instalado.