Maison > Java > javaDidacticiel > Comment implémenter au mieux les retards et la planification en Java ?

Comment implémenter au mieux les retards et la planification en Java ?

Mary-Kate Olsen
Libérer: 2024-12-18 21:57:11
original
408 Les gens l'ont consulté

How to Best Implement Delays and Scheduling in Java?

Création de retards en Java

En Java, l'introduction de retards peut être réalisée par diverses méthodes. Lorsque vous visez un délai d'intervalle fixe dans une boucle, java.util.concurrent.TimeUnit propose la méthode sleep. Pour faire une pause pendant un nombre spécifié de secondes, on peut utiliser TimeUnit.SECONDS.sleep(1);. Cependant, cette approche pose un problème potentiel appelé dérive, qui entraîne des écarts par rapport au délai prévu à chaque cycle.

Pour un contrôle et une planification flexibles des tâches, ScheduledExecutorService apparaît comme une solution plus adaptée. Les méthodes planningAtFixedRate et planningWithFixedDelay permettent une exécution précise des tâches en fonction d'un intervalle de délai spécifié.

Dans Java 8, pour exécuter myTask toutes les secondes à l'aide de planningAtFixedRate :

public static void main(String[] args) {
    final ScheduledExecutorService executorService = Executors.newSingleThreadScheduledExecutor();
    executorService.scheduleAtFixedRate(App::myTask, 0, 1, TimeUnit.SECONDS);
}

private static void myTask() {
    System.out.println("Running");
}
Copier après la connexion

Pour la compatibilité Java 7 :

public static void main(String[] args) {
    final ScheduledExecutorService executorService = Executors.newSingleThreadScheduledExecutor();
    executorService.scheduleAtFixedRate(new Runnable() {
        @Override
        public void run() {
            myTask();
        }
    }, 0, 1, TimeUnit.SECONDS);
}

private static void myTask() {
    System.out.println("Running");
}
Copier après la connexion

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!

source:php.cn
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal