Java的Thread.sleep(long millis)
方法可以使目前的執行緒暫停執行一段時間,傳入的參數為要暫停的時間長短,單位為毫秒(millisecond)
Thread.sleep()
範例。每執行一段句子便會暫停3秒。
public class PttMessages {
public static void main(String[] args) throws InterruptedException {
String messages[] = {
"→ bluewinds:我在香港迪士尼有遇到邱淑貞 和她坐同艘船~搞到最後 我 11/02 21:11",
"推 FackPtt: 就射出來了 11/02 21:12",
"→ bluewinds:們都在看她 沒有人聽解說人員講話~~她本人人超好~~一聽 11/02 21:12",
"推 ZBeta: 就射出來了 11/02 21:13",
"→ bluewinds:到我們是台灣來的 就很開心的和我們合照~~後來去廁所又 11/02 21:12",
"→ sephen: 射出來了 11/02 21:13"
};
for (int i = 0;i < messages.length;i++) {
System.out.println(messages[i]);
Thread.sleep(3000); // 暫停3秒
}
}
}
執行後每條句子印出的時間都會間隔3秒。
當目前執行緒的睡眠(sleep)被中斷時會拋出InterruptedException
,所以必須進行例外處理。
下面範例呼叫interrupt()
方法來中斷執行緒的睡眠,當執行緒開始執行時便馬上因為呼叫了sleep()
而進入睡眠,然而Main執行緒緊接著執行了interrupt()
方法,所以原本睡眠的執行緒被中斷並拋出InterruptedException
錯誤,轉至catch
處理。
public class Test {
public static void main(String[] args) {
Thread thread = new Thread(new Runnable(){
@Override
public void run() {
try {
Thread.sleep(1000);
System.out.println("執行緒執行...");
} catch (InterruptedException e) {
System.out.println("執行緒中斷了...");
return;
}
}
});
thread.start();
thread.interrupt();
}
}
參考:
鄉民推
回覆刪除