Maison  >  Article  >  Java  >  Utilisation du minuteur JDK

Utilisation du minuteur JDK

PHP中文网
PHP中文网original
2017-06-28 10:34:111535parcourir

Implémentation et planification d'une tâche à exécuter par un minuteur
1) Implémentez une sous-classe personnalisée de TimerTask. La méthode run contient le code qui exécute la tâche.
    class RemindTask extends TimerTask {
        public void run() {
            System.out.println("Time up!");
            System.exit (0);
        }
    }
2) Créez un fil de discussion en instanciant la classe Timer
    Timer timer = new timer();
3) Instanciez l'objet de tâche timer (new RemindTask( ))
    RemindTask task = new RemindTask();
4) Planifiez l'exécution de la tâche du minuteur.
  (1) exécutez la tâche après un délai spécial de quelques millisecondes.
    timer.schedule(task,5* 1000);
  (2) spécifier l'heure à laquelle la tâche doit s'exécuter.
    //exécuter la tâche à 23h01
    Calendar Calendar = Calendar.getInstance();
    Calendar.set( Calendar.HOUR_OF_DAY,23);
    calendrier.set(Calendar.MINUTE,1);
    calendrier.set(Calendar.SECOND,0);
    Date heure = calendrier.getTime();

    timer.schedule(task,time);

Arrêter les threads du minuteur
  Par défaut, un programme continue de s'exécuter tant que ses threads du minuteur sont en cours d'exécution. Il existe quatre façons de mettre fin à un fil de discussion du minuteur
  1) Invoquer l'annulation sur le minuteur.(timer.cancel())
  2) Faire du fil du minuteur un démon (后台), en créant le minuteur comme ceci : new Minuterie (vrai). Si les seuls threads restants dans le programme sont des threads démons, le programme se termine.
  3) Une fois l'exécution de toutes les tâches planifiées du minuteur terminée, supprimez toutes les références à l'objet Timer. le thread du minuteur se terminera.
  4) Invoquez la méthode System.exit, qui fait fermer l'ensemble du programme et tous ses threads.

Exécuter une tâche à plusieurs reprises
Il existe quatre méthodes de minuterie pour effectuer une tâche à plusieurs reprises
  * planning (tâche TimerTask, long délai, longue période)
    Planifie la tâche spécifiée pour un délai fixe répété exécution, commençant après le délai spécifié. Les exécutions ultérieures ont lieu à intervalles approximativement réguliers, séparés par la période spécifiée. 🎜>    timer.schedule (nouvelle tâche de rappel (), 3 * 1000,1 * 1000)
remindtask 任务 将 会 在 3 秒 后 执行 , 以后 将 会 以 以 1 秒 的 间隔 重复 执行

* Tâche de Timertasque, date de date, long période)
    执行重复的任务,第一次在特定的时间执行,往后的以特定的时间间隔执行

  * xedRate (tâche TimerTask, long délai, longue période)
    Planifications la tâche spécifiée pour une exécution répétée à taux fixe, commençant après le délai spécifié. Les exécutions ultérieures ont lieu à intervalles approximativement réguliers, séparés par la période spécifiée.发生在特定的时间间隔之后
temer.scheduleAtFixedRate(new RemindTask(),3*1000,1*1000)
  * planningAtFixedRate(TimerTask task, Date firstTime, long period)
    执行重复的任务,第一次在特定的时间执行,往后的以特定的时间间隔执行

 scheduleetscheduleAtFixedRate的区别在于,schedule以固定的相对时间间隔执行,如果某一次执行被延时了,往后的执行的执行时间也会相对延Il s'agit d'un programme de planification à taux fixe fixé par scheduleAtFixedRate.缩短。


Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn