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