En attente d'une Minuterie pour finir en Java

Je suis en utilisant java.util.Minuterie pour planifier une tâche périodique. A un moment, je voudrais l'arrêter, et attendez la fin de la.

Minuterie.annuler() permettra d'éviter à l'avenir toute les tâches en cours d'exécution. Comment puis-je m'assurer que toutes les tâches ne sont pas en cours d'exécution au moment (ou attendre pour eux si ils sont?)

Je peux introduire des mécanismes de synchronisation externe, mais je ne vois pas comment ils peuvent couvrir tous les cas. Par exemple, si je synchroniser sur certains moniteurs au sein de la tâche, il me manque encore le cas lorsque la tâche juste commencé à s'exécuter mais ne prenez pas le moniteur.

Qu'est-ce que la pratique recommandée pour l'attente jusqu'à ce que toutes les tâches sont vraiment fait, y compris les tâches en cours d'exécution?

OriginalL'auteur ripper234 | 2009-08-24