您的位置:首页 > 编程语言 > Java开发

【Java多线程】之二:Java Thread Sleep Example

2015-08-09 09:53 411 查看
java.lang.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.

There is another 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.

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 sleep time it prints is slightly greater than 2000 and caused by how thread sleep works and operating system specific implementation of thread scheduler.

Thread Sleep important points

It always pause the current thread execution.

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.

Thread sleep doesn’t lose any monitors or locks current thread has acquired.

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.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: