logo

Thread.sleep() -menetelmä Javassa esimerkein

Thread Class on luokka, joka on pohjimmiltaan ohjelmien suoritussäie. Se on Java.lang - paketissa . Säieluokka sisältää Nukkua() menetelmä. Säieluokassa on kaksi ylikuormitettua Sleep()-menetelmää, joista toinen on yhdellä argumentilla ja toinen kahdella argumentilla. Sleep()-menetelmää käytetään pysäyttämään nykyisen säikeen suorittaminen (riippuen siitä, mikä saattaa olla käynnissä järjestelmässä) tietyksi ajaksi ja sen jälkeen, kun aika on kulunut, aiemmin suoritettava säie alkaa suorittaa uudelleen.

Tärkeä kohta Thread.sleep() -menetelmästä:



jpa vs hibernate
  • Menetelmä Aina kun Thread.sleep()-funktiota suoritetaan, se keskeyttää aina nykyisen säikeen suorituksen.
  • Jos jokin muu lanka keskeytyy langan ollessa lepotilassa, InterruptedException heitetään.
  • Jos järjestelmä on varattu, säikeen todellinen nukkumisaika on pitempi kuin lepotilan kutsumisen aikana kulunut aika, ja jos järjestelmässä on vähemmän kuormitusta, säikeen todellinen lepoaika on lähellä kulunutta aikaa. Sleep()-menetelmän kutsuminen.

Sleep()-menetelmän syntaksi

Sleep()-menetelmästä on 4 muunnelmaa Java Threadissa. Nämä ovat:

 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() -menetelmässä välitetyt parametrit



    millis: Aika millisekunteina, jonka lanka nukkuu nanos: Tämä on lisäaika nanosekunteina, jonka haluamme langan nukkuvan. Se vaihtelee välillä 0-999999.

Unen tyyppi() -menetelmä: Se ei palauta mitään arvoa, eli unifunktion palautustyyppi on mitätön.

Yhden parametrin nukkumismenetelmä on natiivimenetelmä, eli tämän menetelmän toteutus tehdään toisella ohjelmointikielellä ja toinen kahdella parametrilla varustettu menetelmä ei ole natiivimenetelmä, eli sen toteutus tapahtuu Javassa. Molemmat unimenetelmät ovat staattisia, eli niihin pääsee käsiksi Thread-luokan avulla. Molemmat menetelmät heittävät tarkastetun poikkeuksen eli voimme käsitellä poikkeuksen joko käyttämällä throws-avainsanaa tai käyttämällä try and catch -lohkoa.

Voimme käyttää Thread.Sleep()-menetelmää mille tahansa säikeelle, eli voimme tehdä sen pääsäikeellä tai millä tahansa muulla ohjelmallisesti luomallamme säikeellä.



1. Thread.Sleep()-menetelmän käyttäminen pääsäikeessä

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

>

>

Lähtö

0 1 2 3 4>

2. Thread.Sleep()-menetelmän käyttäminen mukautetulle säikeelle

Java




java boolean merkkijonoksi

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

>

>

Lähtö

0 1 2 3 4>

3. IllegalArguementException, kun nukkumisaika on negatiivinen

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

>

>

Lähtö

java.lang.IllegalArgumentException: timeout value is negative>