logo

Metoda Thread.sleep() v Javi s primeri

Thread Class je razred, ki je v bistvu nit izvajanja programov. Prisoten je v paketu Java.lang. Razred niti vsebuje spanje () metoda. V razredu niti sta prisotni dve preobremenjeni metodi metode Sleep(), ena je z enim argumentom, druga pa z dvema argumentoma. Metoda spanja() se uporablja za zaustavitev izvajanja trenutne niti (ne glede na to, katera se izvaja v sistemu) za določen čas in po poteku tega časa se nit, ki se je izvajala prej, začne znova izvajati.

Pomembna točka v zvezi z metodo Thread.sleep():



  • Metoda Ko se funkcija Thread.sleep() izvede, vedno začasno ustavi izvajanje trenutne niti.
  • Če katera koli druga nit prekine, ko nit spi, bo vržena InterruptedException.
  • Če je sistem zaseden, bo dejanski čas spanja niti daljši od tistega, ki je bil pretečen med klicanjem metode mirovanja, in če je sistem manj obremenjen, bo dejanski čas spanja niti blizu tistemu, ki je bil pretečen med klicanje metode spanja().

Sintaksa metode Sleep().

V Java Thread obstajajo 4 različice metode spanja(). To so:

 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>

Parametri, posredovani v metodi Thread.Sleep().



    milisekundah: Trajanje časa v milisekundah, za katerega bo nit spala nano: To je dodatni čas v nanosekundah, za katerega želimo, da nit spi. Razpon je od 0 do 999999.

Vrsta vrnjene metode Sleep(): Ne vrne nobene vrednosti, kar pomeni, vrnjena vrsta funkcije mirovanja je nična.

Metoda spanja z enim parametrom je izvorna metoda, tj. implementacija te metode je izvedena v drugem programskem jeziku, druga metoda z dvema parametroma pa ni izvorna metoda, tj. njena implementacija je izvedena v Javi. Obe metodi spanja sta statični, tj. do njiju lahko dostopamo z razredom Thread. Obe metodi vržeta preverjeno izjemo, tj. izjemo lahko obravnavamo z uporabo ključne besede throws ali z uporabo bloka poskusi in ulovi.

Metodo Thread.Sleep() lahko uporabimo za katero koli nit, torej lahko to storimo z glavno nitjo ali katero koli drugo nitjo, ki jo naredimo programsko.



1. Uporaba metode Thread.Sleep() za glavno nit

Java




c program za primerjavo nizov

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

>

>

Izhod

0 1 2 3 4>

2. Uporaba metode Thread.Sleep() za nit po meri

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

>

>

Izhod

0 1 2 3 4>

3. IllegalArguementException, ko je čas spanja negativen

Java


knn



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

>

>

Izhod

java.lang.IllegalArgumentException: timeout value is negative>