Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

วัตถุประสงค์ของ Thread.sleep() ใน Java


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