Thread Class is een klasse die in feite een thread is voor de uitvoering van programma's. Het is aanwezig in het Java.lang-pakket. Thread-klasse bevat de Slaap() methode. Er zijn twee overbelaste methoden van de methode Sleep() aanwezig in Thread Class, één met één argument en een andere met twee argumenten. De sleep() methode wordt gebruikt om de uitvoering van de huidige thread (welke dan ook in het systeem wordt uitgevoerd) voor een bepaalde tijdsduur te stoppen en nadat die tijdsduur voorbij is, begint de thread die eerder werd uitgevoerd opnieuw uit te voeren.
Belangrijk punt met betrekking tot de Thread.sleep()-methode:
- Methode Wanneer de functie Thread.sleep() moet worden uitgevoerd, wordt de huidige uitvoering van de thread altijd gepauzeerd.
- Als een andere thread wordt onderbroken terwijl de thread slaapt, wordt InterruptedException gegenereerd.
- Als het systeem bezig is, zal de werkelijke slaaptijd van de thread langer zijn dan de tijd die verstreken is tijdens het aanroepen van de slaapmethode. Als het systeem minder belast is, zal de werkelijke slaaptijd van de thread dicht bij de tijd liggen die verstreken is tijdens het aanroepen van de slaapmethode. methode sleep() aanroepen.
Syntaxis van de slaap()-methode
Er zijn 4 varianten van de sleep()-methode in Java Thread. Dit zijn:
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>
Parameters doorgegeven in de Thread.Sleep()-methode
- millis: Tijdsduur in milliseconden gedurende welke de draad zal slapen nanos: Dit is de extra tijd in nanoseconden waarvoor we willen dat de draad slaapt. Dit varieert van 0 tot 999999.
Retourneer type slaap() Methode: Het retourneert geen enkele waarde, dat wil zeggen dat het retourtype van de slaapfunctie ongeldig is.
De slaapmethode met één parameter is een native methode, dwz de implementatie van deze methode wordt gedaan in een andere programmeertaal en de andere methode met twee parameters is geen native methode, dwz de implementatie ervan gebeurt in Java. Beide slaapmethoden zijn statisch, dat wil zeggen dat we er toegang toe hebben via de klasse Thread. Beide methoden genereren een gecontroleerde uitzondering, dat wil zeggen dat we de uitzondering kunnen afhandelen door het trefwoord throws te gebruiken of door het try-and-catch-blok te gebruiken.
We kunnen de methode Thread.Sleep() gebruiken voor elke thread, dat wil zeggen dat we dit kunnen doen met de hoofdthread of elke andere thread die we programmatisch maken.
1. Gebruik de Thread.Sleep()-methode voor de hoofdthread
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);> >}> >}> }> |
>
>Uitvoer
0 1 2 3 4>
2. De Thread.Sleep()-methode gebruiken voor aangepaste threads
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();> >}> }> |
>
Java-indexvan
>Uitvoer
0 1 2 3 4>
3. IllegalArguementException wanneer de slaaptijd negatief is
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);> >}> >}> }> |
>
>Uitvoer
java.lang.IllegalArgumentException: timeout value is negative>