Thread Class est une classe qui est essentiellement un fil d’exécution des programmes. Il est présent dans le package Java.lang. La classe Thread contient le Dormir() méthode. Il existe deux méthodes surchargées de la méthode Sleep() présentes dans Thread Class, l’une avec un argument et l’autre avec deux arguments. La méthode sleep() est utilisée pour arrêter l'exécution du thread en cours (selon celui qui est en cours d'exécution dans le système) pendant une durée spécifique et une fois cette durée dépassée, le thread qui s'exécute plus tôt recommence à s'exécuter.
tableau java
Point important concernant la méthode Thread.sleep() :
- Méthode Chaque fois que Thread.sleep() fonctionne, il met toujours en pause l'exécution du thread en cours.
- Si un autre thread s'interrompt lorsque le thread est en veille, alors InterruptedException sera levée.
- Si le système est occupé, alors le temps réel pendant lequel le thread va dormir sera plus long que celui passé lors de l'appel de la méthode sleep et si le système a moins de charge, alors le temps de sommeil réel du thread sera proche de celui passé pendant l'appel de la méthode sleep. appelant la méthode sleep().
Syntaxe de la méthode Sleep()
Il existe 4 variantes de la méthode sleep() dans Java Thread. Ceux-ci sont:
1. public static void sleep(long millis)throws InterruptedException 2. public static void sleep(long millis)throws IllegalArguementException 3. public static void sleep(long millis, int nanos)throws InterruptedException 4. public static void sleep(long millis, int nanos)throws IllegalArguementException>
Paramètres transmis dans la méthode Thread.Sleep()
- millis : Durée en millisecondes pendant laquelle le thread va dormir. nanos : C'est le temps supplémentaire en nanosecondes pendant lequel nous voulons que le thread dorme. Il va de 0 à 999999.
Type de retour de la méthode Sleep() : Il ne renvoie aucune valeur, c'est-à-dire que le type de retour de la fonction sleep est nul.
La méthode sleep à un paramètre est une méthode native, c'est à dire que l'implémentation de cette méthode se fait dans un autre langage de programmation et l'autre méthode à deux paramètres n'est pas une méthode native, c'est à dire que son implémentation se fait en Java. Les deux méthodes sleep sont statiques, c'est-à-dire que nous pouvons y accéder en utilisant la classe Thread. Les deux méthodes renvoient une exception vérifiée, c'est-à-dire que nous pouvons gérer l'exception soit en utilisant le mot-clé throws, soit en utilisant le bloc try and catch.
Nous pouvons utiliser la méthode Thread.Sleep() pour n’importe quel thread, c’est-à-dire que nous pouvons le faire avec le thread principal ou tout autre thread que nous créons par programme.
1. Utilisation de la méthode Thread.Sleep() pour le thread principal
Java
// Java Program for sleeping the main thread.> import> java.io.*;> import> java.lang.Thread;> class> GFG {> >public> static> void> main(String[] args)> >{> >// we can also use throws keyword followed by> >// exception name for throwing the exception> > >try> {> >for> (>int> i =>0>; i <>5>; i++) {> > >// it will sleep the main thread for 1 sec> >// ,each time the for loop runs> >Thread.sleep(>1000>);> > >// printing the value of the variable> >System.out.println(i);> >}> >}> >catch> (Exception e) {> > >// catching the exception> >System.out.println(e);> >}> >}> }> |
>
quelque chose pour les petits amis
>Sortir
0 1 2 3 4>
2. Utilisation de la méthode Thread.Sleep() pour un fil personnalisé
Java
// Java Program for sleeping the custom thread.> import> java.io.*;> import> java.lang.Thread;> class> GFG>extends> Thread {> >public> void> run()> >{> >// thread 0> >// we can also use throws keyword followed by> >// exception name for throwing the exception> >try> {> >for> (>int> i =>0>; i <>5>; i++) {> > >// it will sleep the main thread for 1 sec> >// ,each time the for loop runs> >Thread.sleep(>1000>);> > >// This Thread.sleep() method will sleep the> >// thread 0.> >// printing the value of the variable> >System.out.println(i);> >}> >}> >catch> (Exception e) {> > >// catching the exception> >System.out.println(e);> >}> >}> >public> static> void> main(String[] args)> >{> >// main thread> >GFG obj =>new> GFG();> >obj.start();> >}> }> |
>
>Sortir
aléatoire pas de générateur en java
0 1 2 3 4>
3. IllegalArguementException lorsque le temps de sommeil est négatif
Java
// Java Program for showing how exception can occur if we> // pass the negative timeout value.> import> java.io.*;> import> java.lang.Thread;> class> GFG {> >public> static> void> main(String[] args)> >{> >// we can also use throws keyword followed by> >// exception name for throwing the exception> > >try> {> >for> (>int> i =>0>; i <>5>; i++) {> > >// this will throw the> >// IllegalArgumentException> >Thread.sleep(->100>);> > >// printing the value of the variable> >System.out.println(i);> >}> >}> >catch> (Exception e) {> > >// catching the exception> >System.out.println(e);> >}> >}> }> |
>
>Sortir
java.lang.IllegalArgumentException: timeout value is negative>