Originariamente inviato da Poker1
Allora ho fatto cosi':
ho creato un Vector contenente oggetti del tipo IP:Porta ( piu altre informazioni che mi servono ) e Timer.
Quindi, ad ogni timer del vector ho associato un MioTimerTask il quale deve fare un meccanismo di ping-pong.
Se il timer viene rallentato non e' una grande perdita per me in quanto non deve essere preciso al millesimo, visto che utilizzo UDP e il pacchetto puo' anche andar perso.
Non ho utilizzato il pool, faccio gestire il thread direttamente ad ogni timer
Guarda che non è necessario avere 1 Timer per ogni TimerTask!! Basta 1 solo Timer per gestire molti TimerTask (la documentazione di Timer dice che per come è implementato, è in grado di gestire tranquillamente anche migliaia di task!).
Poi comunque un Vector lo vedo inutile. Definisci la tua classe che estende TimerTask in modo che possa ricevere nel costruttore i dati che ti servono. Quindi istanzi 1 Timer, istanzi i tuoi N task e li scheduli con il metodo schedule di Timer.
Tutto qui.