Da JavaDoc per questo metodo:
Returns an estimate of the number of active threads in the current thread's thread group and its subgroups. Recursively iterates over all subgroups in the current thread's thread group.
The value returned is only an estimate because the number of threads may change dynamically while this method traverses internal data structures, and might be affected by the presence of certain system threads. This method is intended primarily for debugging and monitoring purposes.
Guardando il codice in ThreadGroup per questo, deduco che si basa sul valore della variabile nthreads
di ThreadGroup che viene incrementata quando il metodo add(Thread)
viene chiamato (creato) e decrementato quando remove(Thread)
il metodo è chiamato.
Il metodo add
viene chiamato quando viene creato un thread. Il metodo remove
viene chiamato quando un thread è terminato o non riesce ad avviarsi. Cioè, viene conteggiato un thread che non è stato ancora avviato, ma se successivamente fallisce, non verrà più conteggiato.