Salve a tutti, ho un dubbio riguardo i thread in java.

Ho realizzato un'applicazione che starta un thread la cui durata è esattamente di un secondo.
Nel momento in cui questo termina (me ne rendo conto tramite uan variabile condivisa) l'applicazione deve fare partire un nuovo thread uguale, ma prima di fare questo chiamo un join sul thread appena terminato in modo da liberare lo zombie ed evitare che il sistema vada outOfMemory.

Nonostante ciò dopo alcuni secondi di esecuzione le prestazioni dell'applicazione calano sensibilmente, perdendo tutto il tempo nell'aspettare thread già morti

Non capisco a cosa può essere dovuto questo comportamento ci sono altre cose da fare per eliminare un thread zombie in java?

grazie ciao ciao