logo

Thread.sleep() în Java cu exemple

Clasa Java Thread oferă cele două variante ale metodei sleep(). Prima acceptă doar un argument, în timp ce cealaltă variantă acceptă două argumente. Metoda sleep() este folosită pentru a opri funcționarea unui fir pentru o anumită perioadă de timp. Timpul până la care firul rămâne în stare de adormire este cunoscut ca timpul de adormire al firului. După ce timpul de somn s-a încheiat, firul își începe execuția de unde a plecat.

Sintaxa metodei sleep():

Mai jos sunt sintaxa metodei sleep().

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

Metoda sleep() cu un singur parametru este metoda nativă, iar implementarea metodei native se realizează într-un alt limbaj de programare. Celelalte metode care au cei doi parametri nu sunt metoda nativă. Adică, implementarea sa se realizează în Java. Putem accesa metodele sleep() cu ajutorul clasei Thread, deoarece semnătura metodelor sleep() conține cuvântul cheie static. Metoda nativă, precum și cea non-nativă, lansează o excepție bifată. Prin urmare, fie blocul try-catch, fie cuvântul cheie throws poate funcționa aici.

Metoda Thread.sleep() poate fi folosită cu orice fir. Înseamnă că orice alt fir sau firul principal poate invoca metoda sleep().

Parametri:

Următorii sunt parametrii utilizați în metoda sleep().

tu ești îmbinare

mls: Timpul în milisecunde este reprezentat de parametrul mls. Durata pentru care thread-ul va dormi este dată de metoda sleep().

n: Afișează timpul suplimentar până la care programatorul sau dezvoltatorul dorește ca firul să fie în starea de repaus. Intervalul lui n este de la 0 la 999999.

Metoda nu returnează nimic.

Puncte importante de reținut despre metoda Sleep().

Ori de câte ori se execută metodele Thread.sleep(), aceasta oprește întotdeauna execuția firului curent.

Ori de câte ori un alt thread întrerupe în timp ce firul curent este deja în modul de repaus, atunci InterruptedException este aruncată.

subșir șir

Dacă sistemul care execută firele de execuție este ocupat, atunci timpul real de adormire al firului de execuție este în general mai mare în comparație cu timpul trecut în argumente. Totuși, dacă sistemul care execută metoda sleep() are mai puțină sarcină, atunci timpul real de somn al firului de execuție este aproape egal cu timpul trecut în argument.

Exemplu de metoda sleep() în Java: pe firul personalizat

Următorul exemplu arată cum se poate folosi metoda sleep() pe firul personalizat.

Nume de fișier: 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++){>

După cum știți bine că la un moment dat se execută un singur thread. Dacă dormiți un fir pentru timpul specificat, programatorul de fire preia un alt fir și așa mai departe.

Exemplu al metodei sleep() în Java: pe firul principal

Nume de fișier: 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;>

Exemplu al metodei sleep() în Java: Când timpul de somn este -ive

Următorul exemplu aruncă excepția IllegalArguementException atunci când timpul de somn este negativ.

Nume de fișier: 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;>