Comment retarder de quelques secondes en Java
-
Créer un délai en utilisant la méthode
Thread.sleep()
en Java -
Créer un délai en utilisant la méthode
TimeUnit.sleep()
en Java -
Créer un délai en utilisant le service
ScheduledExecutorService
en Java -
Créer un délai en utilisant
ScheduledExecutorService
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...