logo

Thread.sleep()-metoden i Java med exempel

Thread Class är en klass som i grunden är en tråd för exekvering av programmen. Det finns i Java.lang-paketet. Trådklassen innehåller Sova() metod. Det finns två överbelastade metoder för Sleep()-metoden i Thread Class, en är med ett argument och en annan är med två argument. Sleep()-metoden används för att stoppa exekveringen av den aktuella tråden (beroende på vilken som kan köras i systemet) under en specifik varaktighet av tiden och efter att tidsperioden går över börjar tråden som körs tidigare att köras igen.

Viktig punkt angående Thread.sleep()-metoden:



  • Metod Närhelst Thread.sleep() fungerar för att köra, pausar den alltid den aktuella trådexekveringen.
  • Om någon annan tråd avbryter när tråden sover, kommer InterruptedException att kastas.
  • Om systemet är upptaget kommer den faktiska tiden som tråden kommer att vila att vara längre jämfört med den som passerade när du anropade vilometoden och om systemet har mindre belastning kommer den faktiska vilotiden för tråden att vara nära den som passerade medan anropar sleep()-metoden.

Syntax för Sleep()-metoden

Det finns 4 varianter av sleep()-metoden i Java Thread. Dessa är:

 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>

Parametrar som skickas i Thread.Sleep()-metoden



    millis: Tidslängd i millisekunder för vilken tråd kommer att sova nanos: Detta är den extra tid i nanosekunder som vi vill att tråden ska sova. Det sträcker sig från 0 till 999999.

Returnera typ av sömn()-metod: Den returnerar inget värde, dvs returtypen för vilofunktionen är ogiltig.

scanner java

Sömnmetoden med en parameter är en native metod, dvs implementeringen av denna metod görs i ett annat programmeringsspråk och den andra metoden med två parametrar är inte en native metod, dvs dess implementering görs i Java. Båda sömnmetoderna är statiska, dvs vi kan komma åt dem med hjälp av klassen Thread. Båda metoderna kastar ett markerat undantag, dvs vi kan hantera undantaget antingen genom att använda nyckelordet throws eller genom att använda try and catch-blocket.

Vi kan använda metoden Thread.Sleep() för vilken tråd som helst, det vill säga vi kan göra det med huvudtråden eller vilken annan tråd som helst som vi skapar programmatiskt.



1. Använda Thread.Sleep()-metoden för huvudtråd

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

>

>

Produktion

0 1 2 3 4>

2. Använda Thread.Sleep()-metoden för anpassad tråd

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();> >}> }>

>

>

Produktion

0 1 2 3 4>

3. IllegalArguementUndantag när sömntiden är negativ

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

>

>

Produktion

java.lang.IllegalArgumentException: timeout value is negative>