Thread.sleep造成目前的thread暫時中止執行特定的時間,這是一個有效率給予其他threads處理時間的想法,
sleep方法也可以被使用在調整、如同下面所示的例子,以及等待其他thread。
兩個overloaded版本的sleep被提供:其中一個是sleep特定時間在millisecond另外一個則是nanosecond.
然後這些sleep時間不一定保證準確,因為它們被受到底層的OS的效能限制,而且,sleep期間可以被中斷所終結。
SleepMessage範例,每4秒的間隔印出訊息。
public class SleepMessages {
public static void main(String args[]) throws InterruptedException {
String importantInfo[] = {
"Mares eat oats",
"Does eat oats",
"Little lambs eat ivy",
"A kid will eat ivy too"
};
for (int i = 0; i < importantInfo.length; i++) {
//Pause for 4 seconds
Thread.sleep(4000);
//Print a message
System.out.println(importantInfo[i]);
}
}
}
注意到main方法宣告了throws InterruptedExpcetion,這被丟出當其他thread中斷目前的thread當sleep是活動的
,自從這個應用程式沒有定義其他的thread來造成中斷,這並沒有困擾會抓到中斷例外
參考網址:
http://java.sun.com/docs/books/tutorial/essential/concurrency/sleep.html
No comments:
Post a Comment