Thread Class yra klasė, kuri iš esmės yra programų vykdymo gija. Jis yra Java.lang pakete. Gijų klasėje yra Miegas () metodas. Thread Class yra du perkrauti Sleep() metodo metodai: vienas yra su vienu argumentu, o kitas su dviem argumentais. Sleep() metodas naudojamas sustabdyti esamos gijos vykdymą (nepriklausomai nuo to, kuri gali būti vykdoma sistemoje) tam tikram laikui, o pasibaigus šiam laikui, anksčiau vykdoma gija vėl pradeda vykdyti.
Svarbus dalykas, susijęs su Thread.sleep() metodu:
- Metodas Kai Thread.sleep() funkcijos vykdomos, ji visada pristabdo dabartinės gijos vykdymą.
- Jei kuri nors kita gija nutrūksta, kai gija miega, bus išmestas InterruptedException.
- Jei sistema užimta, tikrasis gijos miego laikas bus ilgesnis, palyginti su laiku, praleistu iškviečiant miego metodą, o jei sistema turi mažesnę apkrovą, faktinis gijos miego laikas bus artimas tam, kuris praėjo iškviečiamas miego() metodas.
Sleep() metodo sintaksė
„Java Thread“ yra 4 „sleep()“ metodo variantai. Šitie yra:
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>
Thread.Sleep() metodas perduoti parametrai
- millis: laiko trukmė milisekundėmis, kurią siūlas užmigs nanos: Tai papildomas laikas nanosekundėmis, kurį norime, kad sriegis miegotų. Jis svyruoja nuo 0 iki 999999.
Grąžinimo miego tipo () metodas: Jis negrąžina jokios reikšmės, ty miego funkcijos grąžinimo tipas yra negaliojantis.
Miego metodas su vienu parametru yra vietinis metodas, ty šio metodo įgyvendinimas atliekamas kita programavimo kalba, o kitas metodas su dviem parametrais nėra vietinis metodas, ty jo įgyvendinimas atliekamas Java. Abu miego režimai yra statiniai, ty juos galime pasiekti naudodami Thread klasę. Abu metodai meta pažymėtą išimtį, ty mes galime tvarkyti išimtį naudodami raktinį žodį throws arba naudodami try and catch bloką.
Mes galime naudoti Thread.Sleep() metodą bet kuriai gijai, t. y. galime tai padaryti su pagrindine gija arba bet kuria kita gija, kurią sukuriame programiškai.
1. Thread.Sleep() metodo naudojimas pagrindinei gijai
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);> >}> >}> }> |
multipleksavimas
>
>Išvestis
0 1 2 3 4>
2. Thread.Sleep() metodo naudojimas pasirinktinei gijai
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();> >}> }> |
>
>Išvestis
0 1 2 3 4>
3. IllegalArguementException, kai miego laikas yra neigiamas
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);> >}> >}> }> |
>
>Išvestis
java.lang.IllegalArgumentException: timeout value is negative>