logo

Metoda Thread.sleep() v Javě s příklady

Thread Class je třída, která je v podstatě vláknem pro provádění programů. Je přítomen v balíčku Java.lang. Třída vlákna obsahuje Spát() metoda. Ve třídě vláken jsou dvě přetížené metody metody Sleep(), jedna s jedním argumentem a druhá se dvěma argumenty. Metoda sleep() se používá k zastavení provádění aktuálního vlákna (podle toho, co se může v systému spouštět) na určitou dobu a po uplynutí této doby se vlákno, které se spouští dříve, začne znovu spouštět.

Důležitý bod týkající se metody Thread.sleep():



  • Metoda Kdykoli se má Thread.sleep() spustit, vždy pozastaví provádění aktuálního vlákna.
  • Pokud jakékoli jiné vlákno přeruší, když vlákno spí, bude vyvolána InterruptedException.
  • Pokud je systém zaneprázdněn, pak bude skutečná doba spánku vlákna delší ve srovnání s dobou, která uplynula při volání metody spánku, a pokud má systém menší zatížení, pak se skutečná doba spánku vlákna bude blížit době, která uplynula při volání metody spánku. volání metody sleep().

Syntaxe metody Sleep().

V Java Thread existují 4 varianty metody sleep(). Tyto jsou:

 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>

Parametry předané v metodě Thread.Sleep().



    milis: Doba v milisekundách, po kterou bude vlákno spát nanosekundy: Toto je dodatečná doba v nanosekundách, po kterou chceme, aby vlákno spalo. Pohybuje se od 0 do 999999.

Metoda návratu typu spánku(): Nevrací žádnou hodnotu, tj. návratový typ funkce spánku je neplatný.

Metoda spánku s jedním parametrem je nativní metoda, tj. implementace této metody je provedena v jiném programovacím jazyce a druhá metoda se dvěma parametry není nativní metodou, tj. její implementace je provedena v Javě. Obě metody spánku jsou statické, tj. můžeme k nim přistupovat pomocí třídy Thread. Obě metody vyvolávají zaškrtnutou výjimku, tj. výjimku můžeme zpracovat buď pomocí klíčového slova throws nebo pomocí bloku try and catch.

Můžeme použít metodu Thread.Sleep() pro jakékoli vlákno, tj. můžeme to udělat s hlavním vláknem nebo jakýmkoli jiným vláknem, které vytvoříme programově.



1. Použití metody Thread.Sleep() pro hlavní vlákno

Jáva


řetězec nahradit vše 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ýstup

0 1 2 3 4>

2. Použití metody Thread.Sleep() pro vlastní vlákno

Jáva




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

>

>

Výstup

0 1 2 3 4>

3. IllegalArguementException, když je doba spánku záporná

Jáva




// 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ýstup

java.lang.IllegalArgumentException: timeout value is negative>