ScheduledThreadPoolExecutor

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

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.

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?