Maison >Java >javaDidacticiel >Comment implémenter des retards précis dans l'exécution de Java ?

Comment implémenter des retards précis dans l'exécution de Java ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-17 06:56:26176parcourir

How to Implement Precise Delays in Java Execution?

Suspension de l'exécution en Java pour retard

En Java, l'exécution d'une boucle qui nécessite une exécution limitée dans le temps introduit le besoin de retards. Ce guide explique la méthode d'incorporation des retards dans Java.

En utilisant TimeUnit pour Delay

En tirant parti de java.util.concurrent.TimeUnit, vous pouvez introduire des retards comme indiqué ci-dessous :

TimeUnit.SECONDS.sleep(1); // Pauses for one second
TimeUnit.MINUTES.sleep(1); // Pauses for one minute

Cependant, cette méthode peut conduire à des dérives dans le temps en raison des variations naturelles d'exécution d'un boucle.

Alternative avec ScheduledExecutorService

Pour des délais plus précis et flexibles, pensez au ScheduledExecutorService. Il permet de planifier des tâches avec des tarifs ou des délais fixes :

Pour Java 8 :

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

Pour Java 7 :

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

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