Maison >Java >javaDidacticiel >Comment implémenter des délais précis en Java ?

Comment implémenter des délais précis en Java ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-15 01:21:12426parcourir

How to Implement Precise Delays in Java?

Implémentation du délai Java

En Java, la création d'un délai pour une durée spécifiée est essentielle dans divers scénarios. Cet article explore les techniques d'implémentation des retards et leurs implications.

L'extrait de code fourni utilise une boucle while pour parcourir un tableau, en sélectionnant et en désélectionnant les éléments avec les délais prévus entre chaque action. Pour y parvenir, la plateforme Java propose plusieurs options :

java.util.concurrent.TimeUnit Sleep

La classe TimeUnit fournit des méthodes comme SECONDS.sleep(1) pour suspendre l'exécution pendant une durée spécifique. Cependant, cette approche introduit une dérive, car chaque exécution présente de légères variations temporelles.

ScheduledExecutorService

Pour plus de flexibilité et un contrôle précis, le ScheduledExecutorService est un meilleur choix. Il prend en charge les méthodes ScheduleAtFixedRate et ScheduleWithFixedDelay pour exécuter des tâches périodiquement à des intervalles prédéfinis.

Exemple d'implémentation

Pour exécuter une tâche toutes les secondes à l'aide de ScheduledExecutorService (Java 8) :

ScheduledExecutorService executorService = Executors.newSingleThreadScheduledExecutor();
executorService.scheduleAtFixedRate(App::myTask, 0, 1, TimeUnit.SECONDS);

Java 7 Mise en œuvre

ScheduledExecutorService executorService = Executors.newSingleThreadScheduledExecutor();
executorService.scheduleAtFixedRate(new Runnable() {
    @Override
    public void run() {
        myTask();
    }
}, 0, 1, TimeUnit.SECONDS);

Cette méthode garantit que la tâche s'exécute à des intervalles précis, évitant ainsi les problèmes de dérive.

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