Skip to main content

Thread.sleep in Java

 Thread.sleep() method can be used to pause the execution of current thread for specified time in milliseconds. The argument value for milliseconds can’t be negative, else it throws IllegalArgumentException.

java thread sleep, Thread.sleep in java

There is another overloaded method sleep(long millis, int nanos) that can be used to pause the execution of current thread for specified milliseconds and nanoseconds. The allowed nano second value is between 0 and 999999.

Java Thread Sleep Example

Here is a simple program where Thread.sleep() is used to pause the main thread execution for 2 seconds.

ThreadSleep.java


package com.journaldev.threads;

public class ThreadSleep {

    public static void main(String[] args) throws InterruptedException {
        long start = System.currentTimeMillis();
        Thread.sleep(2000);
        System.out.println("Sleep time in ms = "+(System.currentTimeMillis()-start));
        
    }

}

If you will run the above program, you will notice that the thread sleep time it prints is slightly greater than 2000. This is caused by how thread sleep works and operating system specific implementation of thread scheduler.

Java Thread Sleep important points

  1. It always pause the current thread execution.
  2. The actual time thread sleeps before waking up and start execution depends on system timers and schedulers. For a quiet system, the actual time for sleep is near to the specified sleep time but for a busy system it will be little bit more.
  3. Thread sleep doesn’t lose any monitors or locks current thread has acquired.
  4. Any other thread can interrupt the current thread in sleep, in that case InterruptedException is thrown.

How Thread Sleep Works

Thread.sleep() interacts with the thread scheduler to put the current thread in wait state for specified period of time. Once the wait time is over, thread state is changed to runnable state and wait for the CPU for further execution. So the actual time that current thread sleep depends on the thread scheduler that is part of operating system.

Comments

Popular posts from this blog

Privacy Policy

Privacy Policy Privacy Policy This privacy policy applies to the Rhino VPN app (hereby referred to as "Application") for mobile devices that was created by Codewithyaji (hereby referred to as "Service Provider") as a Free service. This service is intended for use "AS IS". What information does the Application obtain and how is it used? The Application does not obtain any information when you download and use it. Registration is not required to use the Application. Does the Application collect precise real time location information of the device? This Application does not collect precise information about the location of your mobile device. Do third parties see and/or have access to information obtained by the Application? Since the Application does not collect any information, no data is shared with third parties. What are my opt-out rights? You can stop all collection of information by the Application easily by uninstalling it. Yo...

Exploring Methods of String Class

  Introduction String manipulation is arguably one of the most common activities in computer programming. String class has a variety of methods for string manipulation. We will discuss basic methods with examples.  public char charAt(int index) This method requires an integer argument that indicates the position of the character that the method returns.This method returns the character located at the String's specified index. Remember, String indexes are zero-based—for example, String x = "airplane"; System.out.println( x.charAt(2) ); // output is 'r' public String concat(String s) This method returns a String with the value of the String passed in to the method appended to the end of the String used to invoke the method—for example, String x = "book"; System.out.println( x.concat(" author") ); // output is "book author" The overloaded + and += operators perform functions similar to the concat()method—for example, String x = "lib...

Java increment & decrement operator

  Increment and Decrement Operator in Java : It is one of the variation of “ Arithmetic Operator “. Increment and Decrement Operators are Unary Operators. Unary Operator Operates on One Operand. Increment Operator is Used to Increment Value Stored inside Variable on which it is operating. Decrement Operator is used to decrement value of Variable by 1 (default). Types of Increment and Decrement Operator : Pre Increment / Pre Decrement Operator Post Increment / Post Decrement Operator Syntax : ++ Increment operator : increments a value by 1 -- Decrement operator : decrements a value by 1 Pre-Increment Operator : “++” is written before Variable name. Value is Incremented First and then incremented value is used in expression. “++” cannot be used over “ Constant ” of “ final Variable “. Live Example 1 : Post Incrementing Variable [468×60] class PostIncrement { public static void main ( String args [ ] ) { int num1 = 1 ; int num2 = 1 ; num1 + + ; num2 + +...