2012-11-09 3 views
11

Quels sont les avantages et les inconvénients de l'utilisation de ScheduledExecutorService/Timer/Handler? Comme je comprends dans Android au lieu de Timer il est nécessaire d'utiliser Handler, mais qu'en est-il ScheduledExecutorService?ScheduledExecutorService vs Minuteur vs Gestionnaire

Comme je comprends Handler et ScheduledExecutorService est seulement pour le temps relatif, non?

+2

http://stackoverflow.com/questions/2333680/android-schedule-action – assylias

+2

Différence principale entre Timer et ScheduledExecutor: ce dernier peut utiliser plusieurs threads (via un pool de threads) et supprimer le risque qu'une tâche retarde la prochaine un: http://stackoverflow.com/questions/409932/java-timer-vs-executorservice – assylias

+0

Cela montre une bonne clarification http://stackoverflow.com/a/6558821/1016544 –

Répondre

3

Tous les trois vous permettent d'exécuter des tâches sur un thread différent (par exemple, non principal). Le Handler vous permet d'utiliser un message transmettant un modèle d'acteur pour communiquer en toute sécurité entre les threads. Cela ne vous permet pas de faire du timing/delays/etc. Un ScheduledExecutorService est une solution de gestion de threading très générique. Vous l'initialisez avec un certain nombre de threads de travail, puis vous lui donnez des unités de travail. Vous pouvez retarder/heure et répéter les unités de travail.

La classe Timer a une API simple qui ressemble à un ScheduledExecutorService pour une utilisation unique à un thread. L'API officielle suggère de ne pas utiliser cette classe mais de lancer votre propre ScheduledExecutor à la place.

+2

vous pouvez utiliser Handler # postDelayed (Runnable, intervalle) – siliconeagle

Questions connexes