logo

Thread.sleep() i Java med eksempler

Java Thread-klassen gir de to variantene av sleep()-metoden. Først godtar man bare et argument, mens den andre varianten godtar to argumenter. Metoden sleep() brukes til å stoppe arbeidet med en tråd i en gitt tidsperiode. Tiden frem til når tråden forblir i hviletilstand er kjent som trådens sovetid. Etter at sovetiden er over, starter tråden sin utførelse fra der den har gått.

Sleep()-metodens syntaks:

Følgende er syntaksen til sleep()-metoden.

 public static void sleep(long mls) throws InterruptedException public static void sleep(long mls, int n) throws InterruptedException 

Metoden sleep() med den ene parameteren er den native metoden, og implementeringen av den native metoden utføres i et annet programmeringsspråk. De andre metodene som har de to parameterne er ikke den opprinnelige metoden. Det vil si at implementeringen utføres i Java. Vi kan få tilgang til sleep()-metodene ved hjelp av Thread-klassen, da signaturen til sleep()-metodene inneholder det statiske nøkkelordet. Den innfødte, så vel som den ikke-innfødte metoden, kaster et avkrysset unntak. Derfor kan enten try-catch-blokk eller kast-nøkkelordet fungere her.

Thread.sleep()-metoden kan brukes med hvilken som helst tråd. Det betyr at enhver annen tråd eller hovedtråden kan påkalle sleep()-metoden.

Parametere:

Følgende er parameterne som brukes i sleep()-metoden.

mls: Tiden i millisekunder er representert av parameteren mls. Varigheten som tråden vil sove i, er gitt av metoden sleep().

n: Den viser den ekstra tiden frem til programmereren eller utvikleren vil at tråden skal være i dvaletilstand. Området for n er fra 0 til 999999.

Metoden gir ikke noe tilbake.

Viktige punkter å huske om Sleep()-metoden

Når Thread.sleep()-metodene kjøres, stopper den alltid utførelsen av den gjeldende tråden.

Hver gang en annen tråd avbryter mens den gjeldende tråden allerede er i hvilemodus, blir InterruptedException kastet.

Hvis systemet som kjører trådene er opptatt, er den faktiske hviletiden for tråden generelt mer sammenlignet med tiden som gikk i argumenter. Imidlertid, hvis systemet som utfører sleep()-metoden har mindre belastning, er den faktiske hviletiden for tråden nesten lik tiden som gikk i argumentet.

Eksempel på sleep()-metoden i Java: på den tilpassede tråden

Følgende eksempel viser hvordan man kan bruke sleep()-metoden på den tilpassede tråden.

Filnavn: TestSleepMethod1.java

 class TestSleepMethod1 extends Thread{ public void run(){ for(int i=1;i<5;i++){ 500 the thread will sleep for milli seconds try{thread.sleep(500);}catch(interruptedexception e){system.out.println(e);} system.out.println(i); } public static void main(string args[]){ testsleepmethod1 t1="new" testsleepmethod1(); t2="new" t1.start(); t2.start(); < pre> <p> <strong>Output:</strong> </p> <pre> 1 1 2 2 3 3 4 4 </pre> <p>As you know well that at a time only one thread is executed. If you sleep a thread for the specified time, the thread scheduler picks up another thread and so on.</p> <h3>Example of the sleep() Method in Java : on the main thread</h3> <p> <strong>FileName:</strong> TestSleepMethod2.java</p> <pre> // important import statements import java.lang.Thread; import java.io.*; public class TestSleepMethod2 { // main method public static void main(String argvs[]) { try { for (int j = 0; j <5; 1 1000 j++) { the main thread sleeps for milliseconds, which is sec whenever loop runs thread.sleep(1000); displaying value of variable system.out.println(j); } catch (exception expn) catching exception system.out.println(expn); < pre> <p> <strong>Output:</strong> </p> <pre> 0 1 2 3 4 </pre> <h3>Example of the sleep() Method in Java: When the sleeping time is -ive</h3> <p>The following example throws the exception IllegalArguementException when the time for sleeping is negative.</p> <p> <strong>FileName:</strong> TestSleepMethod3.java</p> <pre> // important import statements import java.lang.Thread; import java.io.*; public class TestSleepMethod3 { // main method public static void main(String argvs[]) { // we can also use throws keyword followed by // exception name for throwing the exception try { for (int j = 0; j <5; j++) { it throws the exception illegalargumentexception as time is -ive which -100 thread.sleep(-100); displaying variable's value system.out.println(j); } catch (exception expn) iscaught here system.out.println(expn); < pre> <p> <strong>Output:</strong> </p> <pre> java.lang.IllegalArgumentException: timeout value is negative </pre> <hr></5;></pre></5;></pre></5;i++){>

Som du vet godt at bare én tråd kjøres om gangen. Hvis du sover en tråd for den angitte tiden, plukker trådplanleggeren opp en annen tråd og så videre.

Eksempel på sleep()-metoden i Java: på hovedtråden

Filnavn: TestSleepMethod2.java

 // important import statements import java.lang.Thread; import java.io.*; public class TestSleepMethod2 { // main method public static void main(String argvs[]) { try { for (int j = 0; j <5; 1 1000 j++) { the main thread sleeps for milliseconds, which is sec whenever loop runs thread.sleep(1000); displaying value of variable system.out.println(j); } catch (exception expn) catching exception system.out.println(expn); < pre> <p> <strong>Output:</strong> </p> <pre> 0 1 2 3 4 </pre> <h3>Example of the sleep() Method in Java: When the sleeping time is -ive</h3> <p>The following example throws the exception IllegalArguementException when the time for sleeping is negative.</p> <p> <strong>FileName:</strong> TestSleepMethod3.java</p> <pre> // important import statements import java.lang.Thread; import java.io.*; public class TestSleepMethod3 { // main method public static void main(String argvs[]) { // we can also use throws keyword followed by // exception name for throwing the exception try { for (int j = 0; j <5; j++) { it throws the exception illegalargumentexception as time is -ive which -100 thread.sleep(-100); displaying variable\'s value system.out.println(j); } catch (exception expn) iscaught here system.out.println(expn); < pre> <p> <strong>Output:</strong> </p> <pre> java.lang.IllegalArgumentException: timeout value is negative </pre> <hr></5;></pre></5;>

Eksempel på sleep()-metoden i Java: Når sovetiden er -ive

Følgende eksempel gir unntaket IllegalArguementException når tiden for å sove er negativ.

Filnavn: TestSleepMethod3.java

 // important import statements import java.lang.Thread; import java.io.*; public class TestSleepMethod3 { // main method public static void main(String argvs[]) { // we can also use throws keyword followed by // exception name for throwing the exception try { for (int j = 0; j <5; j++) { it throws the exception illegalargumentexception as time is -ive which -100 thread.sleep(-100); displaying variable\'s value system.out.println(j); } catch (exception expn) iscaught here system.out.println(expn); < pre> <p> <strong>Output:</strong> </p> <pre> java.lang.IllegalArgumentException: timeout value is negative </pre> <hr></5;>