Ad ogni java.util.timer è associato un Thread. Tu hai un Timer per ogni Temporizzatore quindi hai un thread per ogni temporizzatore.
Tieni conto che nel dubbio puoi verificare quanti thread usi un tuo programma - e che fine facciano - lanciando da console il programma "jvisualvm". E' un profiler integrato nel JDK che, appunto, è in grado di darti una panoramica sulle risorse usate dal tuo programma.
Attenzione che, a rigor di logica, non puoi garantire il secondo requisito (un messaggio ogni 1000 ms) con una JVM standard. A seconda dell'applicazione infatti è possibile che il garbage collector entri in funzione e blocchi i thread del programma per un tempo superiore al secondo durante una major collection. Affinchè ciò avvenga il programma deve produrre quantità considerevoli di immondizia ma, ripeto, è un evento che in teoria può verificarsi.
Praticamente se al mancato invio di un messaggio entro 1000 ms capita che qualcuno ci lasci le penne o perda una valanga di denari dovresti usare una piattaforma Java RTSJ
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me!
|