Java Thread sleep() Method



Description

The Java Thread sleep(long millis) method causes the currently executing thread to sleep for the specified number of milliseconds, subject to the precision and accuracy of system timers and schedulers.

Declaration

Following is the declaration for java.lang.Thread.sleep() method

public static void sleep(long millis) throws InterruptedException

Parameters

millis − This is the length of time to sleep in milliseconds.

Return Value

This method does not return any value.

Exception

InterruptedException − if any thread has interrupted the current thread. The interrupted status of the current thread is cleared when this exception is thrown.

Example: Using sleep for threads in Multithreaded environment

The following example shows the usage of Java Thread sleep() method. In this program, we've created a thread class ThreadDemo by implementing Runnable interface. In run method, a for loop is running where we are calling sleep() method to create a given delay. In main() method, two threads of ThreadDemo class are created and started to print the result.

package com.tutorialspoint;

public class ThreadDemo implements Runnable {

   Thread t;

   public void run() {
      for (int i = 10; i < 13; i++) {

         System.out.println(Thread.currentThread().getName() + "  " + i);
         try {
            // thread to sleep for 1000 milliseconds 
            Thread.sleep(1000);
         } catch (Exception e) {
            System.out.println(e);
         }
      }
   }

   public static void main(String[] args) throws Exception {
      Thread t = new Thread(new ThreadDemo());
      // this will call run() function
      t.start();

      Thread t2 = new Thread(new ThreadDemo());
      // this will call run() function
      t2.start();
   }
} 

Output

Let us compile and run the above program, this will produce the following result −

Thread-0  10
Thread-1  10
Thread-0  11
Thread-1  11
Thread-0  12
Thread-1  12

Example: Using sleep for thread in Single Threaded environment

The following example shows the usage of Java Thread sleep() method. In this program, we've created a class ThreadDemo. In main method, current thread is retrieved using currentThread() method and using sleep(), we're introduced a delay of given time and printed the thread.

package com.tutorialspoint;

public class ThreadDemo {

   public static void main(String[] args) {

      Thread t = Thread.currentThread();
      t.setName("Admin Thread");

      // set thread priority to 1
      t.setPriority(1);
     

      try {
         // thread to sleep for 1000 milliseconds
         Thread.sleep(1000);
      } catch (Exception e) {
         System.out.println(e);
      }
	 
      // prints the current thread
      System.out.println("Thread = " + t);     
   }
} 

Output

Let us compile and run the above program, this will produce the following result −

Thread = Thread[Admin Thread,1,main]
java_lang_thread.htm
Advertisements