線程類的 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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。