Si elle est disponible pour vous, alors il est difficile de penser à une raison de ne pas utiliser le Java 5 exécuteur cadre. Appelant:
ScheduledExecutorService ex = Executors.newSingleThreadScheduledExecutor();
vous donnera un ScheduledExecutorService
avec des fonctionnalités similaires à l' Timer
(c'est à dire qu'il sera mono-thread), mais dont l'accès peut être un peu plus évolutive (sous le capot, il utilise simultanés des structures plutôt que la synchronisation complète qu'avec l' Timer
de la classe). À l'aide d'un ScheduledExecutorService
vous donne également des avantages tels que:
- Vous pouvez le personnaliser si besoin est (voir l'
newScheduledThreadPoolExecutor()
ou ScheduledThreadPoolExecutor
de la classe)
- Le "one off" exécutions peuvent renvoyer des résultats
Sur les seules raisons pour coller à l' Timer
je pense:
- Il est disponible en pré Java 5
- Une catégorie similaire est prévue dans J2ME, ce qui pourrait faire le portage de votre application plus facile (mais il ne serait pas terriblement difficile pour ajouter un calque de l'abstraction dans ce cas)