S'il vous est accessible, il est difficile de penser à une raison et non à pour utiliser le framework d'exécution Java 5. Vocation:
ScheduledExecutorService ex = Executors.newSingleThreadScheduledExecutor();
vous donnera un ScheduledExecutorService
avec des fonctionnalités similaires à Timer
(il sera seul thread), mais dont l'accès peut être un peu plus évolutive (sous le capot, il utilise des structures concurrentes plutôt que la synchronisation complète avec la classe Timer
).L'utilisation d'un ScheduledExecutorService
vous donne également des avantages tels que:
- Vous pouvez personnaliser le cas échéant (voir le
newScheduledThreadPoolExecutor()
ou la classe ScheduledThreadPoolExecutor
)
- Le « one off » les exécutions peuvent retourner des résultats
a propos des seules raisons pour coller à Timer
je peux penser sont:
- Il est disponible avant Java 5
- Une classe similaire est prévue dans J2ME, ce qui pourrait rendre le portage de votre application plus facile (mais il ne serait pas très difficile d'ajouter une couche d'abstraction commune dans ce cas)
Et si vous avez besoin de quelque chose d'encore plus sophistiqué, consultez [quartz] (http://www.quartz-scheduler.org/). Il vous donne beaucoup plus de contrôle de travail, y compris la planification de type cron, la programmation en cluster, le contrôle individualisé des tâches (concepts tels qu'un seul jeu à la fois, dépendances, etc.). --Tim – Tim