logo

Metóda Thread.sleep() v jazyku Java s príkladmi

Thread Class je trieda, ktorá je v podstate vláknom vykonávania programov. Nachádza sa v balíku Java.lang. Trieda vlákien obsahuje spánok () metóda. V triede vlákien sú dve preťažené metódy metódy Sleep(), jedna s jedným argumentom a druhá s dvoma argumentmi. Metóda sleep() sa používa na zastavenie vykonávania aktuálneho vlákna (podľa toho, čo sa môže vykonávať v systéme) na určitý čas a po uplynutí tohto času sa vlákno, ktoré sa vykonáva skôr, začne znova vykonávať.

Dôležitý bod týkajúci sa metódy Thread.sleep():



  • Metóda Vždy, keď sa vykoná funkcia Thread.sleep(), vždy pozastaví vykonávanie aktuálneho vlákna.
  • Ak akékoľvek iné vlákno preruší, keď vlákno spí, bude vyvolaná výnimka InterruptedException.
  • Ak je systém zaneprázdnený, skutočný čas, počas ktorého vlákno prejde do režimu spánku, bude dlhší v porovnaní s časom, ktorý prešiel pri volaní metódy spánku, a ak má systém menšie zaťaženie, skutočný čas spánku vlákna sa bude blížiť tomu, ktorý uplynul počas volanie metódy sleep().

Syntax metódy Sleep().

V Java Thread existujú 4 variácie metódy sleep(). Toto sú:

 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 Passed In Thread.Sleep() Method



    milis: Trvanie času v milisekundách, počas ktorého vlákno prespí nanosekundy: Toto je dodatočný čas v nanosekundách, počas ktorého chceme, aby vlákno spalo. Pohybuje sa od 0 do 999999.

Metóda návratu typu spánku(): Nevracia žiadnu hodnotu, t. j. návratový typ funkcie spánku je neplatný.

Metóda spánku s jedným parametrom je natívna metóda, to znamená, že implementácia tejto metódy sa vykonáva v inom programovacom jazyku a druhá metóda s dvoma parametrami nie je natívna metóda, tj jej implementácia sa vykonáva v jazyku Java. Obe metódy spánku sú statické, tj môžeme k nim pristupovať pomocou triedy Thread. Obe metódy vyvolávajú zaškrtnutú výnimku, tj výnimku môžeme spracovať buď pomocou kľúčového slova throws alebo pomocou bloku try and catch.

Metódu Thread.Sleep() môžeme použiť pre ľubovoľné vlákno, t.j. môžeme to urobiť s hlavným vláknom alebo akýmkoľvek iným vláknom, ktoré vytvoríme programovo.



1. Použitie metódy Thread.Sleep() pre hlavné vlákno

Java




int na reťazec v jazyku 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);> >}> >}> }>

>

>

Výkon

0 1 2 3 4>

2. Použitie metódy Thread.Sleep() pre vlastné vlákno

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

hovno
>

„abc“ je v číslach

>

Výkon

0 1 2 3 4>

3. Illegal ArgumentVýnimka, keď je čas spánku negatívny

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

>

>

Výkon

java.lang.IllegalArgumentException: timeout value is negative>