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"); }
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"); }
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!