Pessoal, bom dia!
tenho a seguinte situação abaixo:
ScheduledExecutorService executor = Executors.newScheduledThreadPool(4);
public void sendThreads() throws Throwable {
for (int a = 0; a < 4; a++) {
executor.execute(new myThread()); // a myThread extend uma Thread e implementa a Runnable
}
executor.awaitTermination(0, TimeUnit.MINUTES);
executor.shutdown();
}
até aí funcionando perfeitamente, mas meu problema é que isso precisa ficar num loop e aí tenho o problema de esvaziar o espaço na memória que essas threads ocupam.
eu tento chamar o finalize, destroy… mas nada adianta, o consumo de memória só aumenta… eu coloquei a chamada do shutdownNow() e dei um sleep em cada loop e segurou um pouco a barra, mas ainda assim consome muito recurso. estou lendo http://docs.oracle.com/javase/7/specs/jls/JLS-JavaSE7.pdf para tentar entender como resolver esse problema.
pq eu acredito que seja assim: ao final da execução de cada thread, ela deve ser destruída e seu espaço de memória liberado… ou isso na prática não ocorre?
