Maison Java javaDidacticiel java当中的定时器的4种使用方式

java当中的定时器的4种使用方式

Dec 16, 2016 pm 01:03 PM
minuterie Java

对于开发游戏项目的同胞来说,Timer 这个东西肯定不会陌生,今天对以前自己经常使用的定时进行了一番小小的总结!没有写具体实现的原理,只是列举出了其中的四种比较常见的使用方法,相对而言,所以只要按照其所列举的例子仿照即可!

import java.util.Calendar;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;
 
public class TimeTest {
  public static void main(String[] args) {
    timer1();
    //timer2();
    //timer3();
    //timer4();
  }
 
  // 第一种方法:设定指定任务task在指定时间time执行 schedule(TimerTask task, Date time)
  public static void timer1() {
    Timer timer = new Timer();
    timer.schedule(new TimerTask() {
      public void run() {
        System.out.println("-------设定要指定任务--------");
      }
    }, 2000);// 设定指定的时间time,此处为2000毫秒
  }
 
  // 第二种方法:设定指定任务task在指定延迟delay后进行固定延迟peroid的执行
  // schedule(TimerTask task, long delay, long period)
  public static void timer2() {
    Timer timer = new Timer();
    timer.schedule(new TimerTask() {
      public void run() {
        System.out.println("-------设定要指定任务--------");
      }
    }, 1000, 5000);
  }
 
  // 第三种方法:设定指定任务task在指定延迟delay后进行固定频率peroid的执行。
  // scheduleAtFixedRate(TimerTask task, long delay, long period)
  public static void timer3() {
    Timer timer = new Timer();
    timer.scheduleAtFixedRate(new TimerTask() {
      public void run() {
        System.out.println("-------设定要指定任务--------");
      }
    }, 1000, 2000);
  }
   
  // 第四种方法:安排指定的任务task在指定的时间firstTime开始进行重复的固定速率period执行.
  // Timer.scheduleAtFixedRate(TimerTask task,Date firstTime,long period)
  public static void timer4() {
    Calendar calendar = Calendar.getInstance();
    calendar.set(Calendar.HOUR_OF_DAY, 12); // 控制时
    calendar.set(Calendar.MINUTE, 0);    // 控制分
    calendar.set(Calendar.SECOND, 0);    // 控制秒
 
    Date time = calendar.getTime();     // 得出执行任务的时间,此处为今天的12:00:00
 
    Timer timer = new Timer();
    timer.scheduleAtFixedRate(new TimerTask() {
      public void run() {
        System.out.println("-------设定要指定任务--------");
      }
    }, time, 1000 * 60 * 60 * 24);// 这里设定将延时每天固定执行
  }
}
Copier après la connexion



更多java当中的定时器的4种使用方式相关文章请关注PHP中文网!


Déclaration de ce site Web
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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Dans le débogage à distance Java, comment obtenir correctement des valeurs constantes sur les serveurs distants? Dans le débogage à distance Java, comment obtenir correctement des valeurs constantes sur les serveurs distants? Apr 19, 2025 pm 01:54 PM

Questions et réponses sur l'acquisition constante dans le débogage à distance Java Lors de l'utilisation de Java pour un débogage à distance, de nombreux développeurs peuvent rencontrer des phénomènes difficiles. Il...

En développement arrière, comment distinguer les responsabilités de la couche de service et de la couche DAO? En développement arrière, comment distinguer les responsabilités de la couche de service et de la couche DAO? Apr 19, 2025 pm 01:51 PM

Discuter de l'architecture hiérarchique dans le développement back-end. Dans le développement back-end, l'architecture hiérarchique est un modèle de conception courant, y compris généralement le contrôleur, le service et les trois couches DAO ...

Comment convertir les noms en nombres pour implémenter le tri au sein des groupes? Comment convertir les noms en nombres pour implémenter le tri au sein des groupes? Apr 19, 2025 pm 01:57 PM

Comment convertir les noms en nombres pour implémenter le tri au sein des groupes? Lors du tri des utilisateurs en groupes, il est souvent nécessaire de convertir le nom de l'utilisateur en numéros afin qu'il puisse être différent ...

Que dois-je faire si une interface tierce est appelée dans le projet Spring Boot, et que le cas de nom de champ et la méthode Getter sont incohérents, entraînant une défaillance de transmission des données? Que dois-je faire si une interface tierce est appelée dans le projet Spring Boot, et que le cas de nom de champ et la méthode Getter sont incohérents, entraînant une défaillance de transmission des données? Apr 19, 2025 pm 02:03 PM

Les difficultés rencontrées lors de l'appel des interfaces tierces pour transmettre des données dans le projet Springboot seront utilisées pour un ressort ...

Pourquoi signale-t-il une erreur lors de la soumission d'un travail de pyflink sur le fil? Pourquoi signale-t-il une erreur lors de la soumission d'un travail de pyflink sur le fil? Apr 19, 2025 pm 02:06 PM

Analyse de la raison pour laquelle le script Python ne peut être trouvé lors de la soumission d'un travail de pyflink sur le fil lorsque vous essayez de soumettre un travail de pyflink via le fil, vous pouvez rencontrer ...

Comment modifier dynamiquement le paramètre SavePath de @Excel Annotation dans Easypoi lorsque le projet commence en Java? Comment modifier dynamiquement le paramètre SavePath de @Excel Annotation dans Easypoi lorsque le projet commence en Java? Apr 19, 2025 pm 02:09 PM

Comment configurer dynamiquement les paramètres des annotations de classe d'entité en Java pendant le processus de développement, nous rencontrons souvent la nécessité de configurer dynamiquement les paramètres d'annotation en fonction de différents environnements ...

See all articles