Comment retarder de quelques secondes en Java

Mohammad Irfan 12 octobre 2023
  1. Créer un délai en utilisant la méthode Thread.sleep() en Java
  2. Créer un délai en utilisant la méthode TimeUnit.sleep() en Java
  3. Créer un délai en utilisant le service ScheduledExecutorService en Java
  4. Créer un délai en utilisant ScheduledExecutorService en Java
Comment retarder de quelques secondes en Java

Ce tutoriel présente la façon de créer un délai en Java et donne quelques exemples de codes pour le comprendre.

Il existe plusieurs façons de créer un délai, comme les méthodes TimeUnit.sleep(), ScheduleAtFixedRate(), et Thread.sleep(), etc. Voyons les exemples.

Créer un délai en utilisant la méthode Thread.sleep() en Java

Le Thread est une classe Java qui est utilisée pour créer et exécuter des tâches simultanément et fournit une méthode sleep() pour mettre en pause l’exécution en cours pendant un certain temps.

public class SimpleTesting {
  public static void main(String[] args) {
    try {
      for (int i = 0; i < 2; i++) {
        Thread.sleep(1000);
        System.out.println("Sleep " + i);
      }
    } catch (Exception e) {
      System.out.println(e);
    }
  }
}

Production:

Sleep 0
Sleep 1

Créer un délai en utilisant la méthode TimeUnit.sleep() en Java

Dans cet exemple, nous avons utilisé la méthode sleep() de la classe TimeUnit, qui est utilisée pour faire un délai d’exécution pour le temps spécifié. La classe TimeUnit appartient à un paquet d’API concurrent en Java.

import java.util.concurrent.TimeUnit;

public class SimpleTesting {
  public static void main(String[] args) {
    try {
      for (int i = 0; i < 2; i++) {
        TimeUnit.SECONDS.sleep(2);
        System.out.println("Sleep " + i);
      }
    } catch (Exception e) {
      System.out.println(e);
    }
  }
}

Production:

Sleep 0
Sleep 1

Créer un délai en utilisant le service ScheduledExecutorService en Java

Java fournit une classe ScheduledExecutorService pour programmer l’exécution dans un environnement concurrent. Nous pouvons utiliser la méthode run() à l’intérieur pour exécuter le chemin d’exécution séparé. Voir l’exemple ci-dessous.

import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;

public class Main {
  public static void main(String args[]) {
    try {
      final ScheduledExecutorService executorService = Executors.newSingleThreadScheduledExecutor();
      executorService.scheduleAtFixedRate(new Runnable() {
        @Override
        public void run() {
          executeTask();
        }
      }, 0, 1, TimeUnit.SECONDS);
    } catch (Exception e) {
      System.out.println(e);
    }
  }
  private static void executeTask() {
    System.out.println("Task Executing... ");
  }
}

Production:

Task Executing... 
Task Executing... 
Task Executing... 

Créer un délai en utilisant ScheduledExecutorService en Java

Si vous travaillez avec Java 9 ou une version supérieure, vous pouvez utiliser le concept de référence de méthode pour appeler la méthode à l’intérieur de la méthode scheduleAtFixedRate(). Voir l’exemple ci-dessous.

import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;

public class SimpleTesting {
  public static void main(String[] args) {
    try {
      final ScheduledExecutorService executorService = Executors.newSingleThreadScheduledExecutor();
      executorService.scheduleAtFixedRate(SimpleTesting::executeTask, 1, 2, TimeUnit.SECONDS);
    } catch (Exception e) {
      System.out.println(e);
    }
  }
  private static void executeTask() {
    System.out.println("Task Executing... ");
  }
}

Production:

Task Executing... 
Task Executing... 
Task Executing...