logo

Thread.sleep() i Java med eksempler

Java Thread-klassen giver de to varianter af sleep()-metoden. Først accepterer man kun et argument, mens den anden variant accepterer to argumenter. Metoden sleep() bruges til at standse arbejdet med en tråd i et givet tidsrum. Den tid, indtil tråden forbliver i sovetilstand, er kendt som trådens sovetid. Efter at sovetiden er forbi, starter tråden sin udførelse fra hvor den er gået.

Sleep()-metodens syntaks:

Følgende er syntaksen for 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 parameter er den native metode, og implementeringen af ​​den native metode udføres i et andet programmeringssprog. De andre metoder med de to parametre er ikke den native metode. Det vil sige, at dens implementering udføres i Java. Vi kan få adgang til sleep()-metoderne ved hjælp af Thread-klassen, da signaturen for sleep()-metoderne indeholder det statiske nøgleord. Den indfødte, såvel som den ikke-indfødte metode, kaster en markeret undtagelse. Derfor kan enten try-catch block eller throws søgeordet fungere her.

Thread.sleep()-metoden kan bruges med enhver tråd. Det betyder, at enhver anden tråd eller hovedtråden kan påberåbe sig sleep()-metoden.

Parametre:

Følgende er de parametre, der bruges i sleep()-metoden.

mls: Tiden i millisekunder er repræsenteret af parameteren mls. Varigheden, hvori tråden vil sove, er givet af metoden sleep().

n: Det viser den ekstra tid, op til hvilken programmøren eller udvikleren ønsker, at tråden skal være i dvaletilstand. Området for n er fra 0 til 999999.

Metoden returnerer ikke noget.

Vigtige punkter at huske om Sleep()-metoden

Når Thread.sleep()-metoderne udføres, stopper den altid udførelsen af ​​den aktuelle tråd.

Hver gang en anden tråd afbryder, mens den aktuelle tråd allerede er i dvaletilstand, kastes InterruptedException.

Hvis systemet, der udfører trådene, er optaget, så er den faktiske sovetid for tråden generelt mere sammenlignet med den tid, der er gået i argumenter. Men hvis systemet, der udfører sleep()-metoden har mindre belastning, så er den faktiske sovetid for tråden næsten lig med den tid, der er gået i argumentet.

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

Det følgende eksempel viser, hvordan man kan bruge sleep()-metoden på den brugerdefinerede tråd.

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 godt ved, bliver der kun udført én tråd ad gangen. Hvis du sover en tråd i det angivne tidsrum, samler trådplanlæggeren en anden tråd op 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 kaster undtagelsen IllegalArguementException, når tiden til at 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;>