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!).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
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.

Rispondi quotando