ScheduledThreadPoolExecutor

2 respostas
Y

Oi

Estou fazendo uma pool de tarefas agendadas,mas quando a tarefa é executada ela nao sai da pool.
Tenho que a apagar? Ela nao deveria sair da pool automaticamente??

O codigo que usei foi

long delay = calendar.getTimeInMillis() - Calendar.getInstance().getTimeInMillis(); stpe.schedule(new TaskExecute(), delay, TimeUnit.MILLISECONDS);

Eu vejo a task a ser executada,mas no final quando vou ver a poolsize(),ainda estao lá todas

2 Respostas

ViniGodoy

A idéia de se ter um Pool, em primeiro lugar, é manter um grupo threads executando e delegar a essas threads tarefas. Quando a tarefa acaba, a thread permanece viva, pronta para executar uma nova tarefa.

Por isso, o método getPoolSize() retorna quantas threads estão vivas, não quantas estão processando alguma coisa. E é por isso também, que esse número irá demorar a baixar.

Y

mas se a tarefa já acabou o que tinha a fazer,ela nao deveria sair da pool?
Quer dizer que após o seu run,eu a tenho que apagar manualmente?

Criado 23 de julho de 2012
Ultima resposta 23 de jul. de 2012
Respostas 2
Participantes 2