线程类的 sleep() 方法用于让线程休眠指定的时间。
用法
public static void sleep(long milis)throws InterruptedException
public static void sleep(long milis, int nanos)throws InterruptedException
参数
millis:It defines the length of time to sleep in milliseconds
nanos:0-999999 additional nanoseconds to sleep
返回
It does not return any value.
抛出
IllegalArgumentException: 如果 millis 的值为负或 nanos 的值不在 0-999999 范围内。
InterruptedException:如果任何线程中断了当前线程。抛出此异常时清除当前线程的中断状态。
例子1
public class SleepExp1 extends Thread
{
public void run()
{
for(int i=1;i<5;i++)
{
try
{
Thread.sleep(500);
}catch(InterruptedException e){System.out.println(e);}
System.out.println(i);
}
}
public static void main(String args[])
{
SleepExp1 t1=new SleepExp1();
SleepExp1 t2=new SleepExp1();
t1.start();
t2.start();
}
}
输出:
1 1 2 2 3 3 4 4 5 5
如您所知,一次只执行一个线程。如果您在指定时间内休眠一个线程,则线程调度程序会选择另一个线程,依此类推。
示例 2:当睡眠时间为负数时
public class SleepExp2 extends Thread
{
public void run()
{
for(int i=1;i<5;i++)
{
try
{
Thread.sleep(-500); // sleep time is negative
}catch(InterruptedException e){System.out.println(e);}
System.out.println(i);
}
}
public static void main(String args[])
{
SleepExp2 t1=new SleepExp2();
SleepExp2 t2=new SleepExp2();
t1.start();
t2.start();
}
}
输出:
Exception in thread "Thread-0" Exception in thread "Thread-1" java.lang.IllegalArgumentException:timeout value is negative at java.lang.Thread.sleep(Native Method) at SleepExp2.run(SleepExp2.java:9) java.lang.IllegalArgumentException:timeout value is negative at java.lang.Thread.sleep(Native Method) at SleepExp2.run(SleepExp2.java:9)
相关用法
- Java Thread setDefaultUncaughtExceptionHandler()用法及代码示例
- Java Thread suspend()用法及代码示例
- Java Thread setContextClassLoader()用法及代码示例
- Java Thread setDaemon()用法及代码示例
- Java Thread setName()用法及代码示例
- Java Thread stop()用法及代码示例
- Java Thread setPriority()用法及代码示例
- Java Thread start()用法及代码示例
- Java Thread toString()用法及代码示例
- Java Thread interrupted()用法及代码示例
- Java Thread destroy()用法及代码示例
- Java Thread holdLock()用法及代码示例
- Java Thread getContextClassLoader()用法及代码示例
- Java Thread getThreadGroup()用法及代码示例
- Java Thread isInterrupted()用法及代码示例
- Java Thread enumerate()用法及代码示例
- Java Thread notify()用法及代码示例
- Java Thread resume()用法及代码示例
- Java Thread activeCount()用法及代码示例
- Java Thread isDaemon()用法及代码示例
注:本文由纯净天空筛选整理自 Java Thread sleep() method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。