sleep() เป็น static method ของคลาส Thread ทำให้เธรด sleep/หยุดทำงาน เป็นเวลาที่กำหนด โยน InterruptedException หากเธรดอื่น interrupt ดังนั้น Thread.sleep() ต้องอยู่ใน try-catch หรือระบุ throws clause เมื่อเรียก sleep() จะโต้ตอบกับ thread scheduler ให้เธรดปัจจุบันเข้าสู่ waiting state เวลาหมดจะเปลี่ยนเป็น runnable state
ไวยากรณ์
public static void sleep(long milliseconds) public static void sleep(long milliseconds, int nanoseconds)
sleep(long milliseconds) หยุดเธรดเป็น milliseconds
sleep(long milliseconds, int nanoseconds) หยุดเป็น milliseconds + nanoseconds
ตัวอย่าง
class UserThread extends Thread {
public void run() {
for(int i = 1; i <= 5; i++) {
System.out.println("User Thread");
try {
Thread.sleep(1000); // sleep/stop a thread for 1 second
} catch(InterruptedException e) {
System.out.println("An Exception occured: " + e);
}
}
}
}
public class SleepMethodTest {
public static void main(String args[]) {
UserThread ut = new UserThread();
ut.start(); // to start a thread
}
}
ผลลัพธ์
User Thread User Thread User Thread User Thread User Thread