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...

Privacy Policy

Privacy Policy Privacy Policy Yajindra Gautam built the Gstatus app as an Ad Supported app. This SERVICE is provided by Yajindra Gautam at no cost and is intended for use as is. This page is used to inform visitors regarding my policies with the collection, use, and disclosure of Personal Information if anyone decided to use my Service. If you choose to use my Service, then you agree to the collection and use of information in relation to this policy. The Personal Information that I collect is used for providing and improving the Service. I will not use or share your information with anyone except as described in this Privacy Policy. The terms used ...

Privacy Policy for yajindra

Privacy Policy for yajindra At instagram-analytic, accessible from https://instagram-analytic.yajindragautam.com.np, one of our main priorities is the privacy of our visitors. This Privacy Policy document contains types of information that is collected and recorded by instagram-analytic and how we use it. If you have additional questions or require more information about our Privacy Policy, do not hesitate to contact us. This Privacy Policy applies only to our online activities and is valid for visitors to our website with regards to the information that they shared and/or collect in instagram-analytic. This policy is not applicable to any information collected offline or via channels other than this website. Consent By using our website, you hereby consent to our Privacy Policy and agree to its terms. Information we collect The personal information that you are asked to provide, and the reasons why you are asked to provide it, will be made clear to you at the point we as...