logo

Thread.sleep() in Java met voorbeelden

De klasse Java Thread biedt de twee varianten van de methode sleep(). De eerste accepteert alleen een argument, terwijl de andere variant twee argumenten accepteert. De methode sleep() wordt gebruikt om de werking van een thread voor een bepaalde tijd stop te zetten. De tijd gedurende welke de draad in de slaaptoestand blijft, staat bekend als de slaaptijd van de draad. Nadat de slaaptijd voorbij is, begint de draad met de uitvoering vanaf het punt waar hij gebleven is.

De syntaxis van de slaap()-methode:

Hieronder volgt de syntaxis van de methode sleep().

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

De methode sleep() met de ene parameter is de native methode, en de implementatie van de native methode wordt tot stand gebracht in een andere programmeertaal. De andere methoden met de twee parameters zijn niet de oorspronkelijke methode. Dat wil zeggen dat de implementatie ervan in Java wordt uitgevoerd. We hebben toegang tot de sleep()-methoden met behulp van de Thread-klasse, omdat de handtekening van de sleep()-methoden het statische sleutelwoord bevat. Zowel de native als de niet-native methode genereren een aangevinkte Exception. Daarom kan het try-catch-blok of het trefwoord throws hier werken.

De methode Thread.sleep() kan met elke thread worden gebruikt. Het betekent dat elke andere thread of de hoofdthread de methode sleep() kan aanroepen.

Parameters:

Hieronder volgen de parameters die worden gebruikt in de sleep() -methode.

ml: De tijd in milliseconden wordt weergegeven door de parameter mls. De duur gedurende welke de thread zal slapen wordt gegeven door de methode sleep().

blokkeer YouTube-advertenties op Android

N: Het toont de extra tijd gedurende welke de programmeur of ontwikkelaar wil dat de thread zich in de slaapstand bevindt. Het bereik van n loopt van 0 tot 999999.

De methode retourneert niets.

Belangrijke punten om te onthouden over de Sleep()-methode

Telkens wanneer de Thread.sleep()-methoden worden uitgevoerd, stopt deze altijd de uitvoering van de huidige thread.

Telkens wanneer een andere thread een onderbreking ondergaat terwijl de huidige thread zich al in de slaapmodus bevindt, wordt de InterruptedException gegenereerd.

Als het systeem dat de threads uitvoert bezet is, is de werkelijke slaaptijd van de thread over het algemeen langer dan de tijd die is verstreken in argumenten. Als het systeem dat de methode sleep() uitvoert echter minder belasting heeft, is de werkelijke slaaptijd van de thread vrijwel gelijk aan de tijd die is verstreken in het argument.

Voorbeeld van de sleep()-methode in Java: op de aangepaste thread

In het volgende voorbeeld ziet u hoe u de methode sleep() op de aangepaste thread kunt gebruiken.

Bestandsnaam: 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++){>

Zoals u goed weet, wordt er slechts één thread tegelijk uitgevoerd. Als u een thread gedurende de opgegeven tijd in de slaapstand laat, neemt de threadplanner een andere thread op, enzovoort.

Voorbeeld van de sleep()-methode in Java: in de hoofdthread

Bestandsnaam: 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;>

Voorbeeld van de sleep()-methode in Java: wanneer de slaaptijd -ive is

In het volgende voorbeeld wordt de uitzondering IllegalArguementException gegenereerd wanneer de slaaptijd negatief is.

Bestandsnaam: 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;>