Java 中的 Thread 類(lèi)提供了一個(gè) sleep() 方法,用于暫停當(dāng)前線程的執(zhí)行,使其進(jìn)入休眠狀態(tài)。該方法的語(yǔ)法如下:
public static void sleep(long millis) throws InterruptedException
其中,millis 參數(shù)表示線程要休眠的時(shí)間(以毫秒為單位)。sleep() 方法會(huì)使當(dāng)前線程進(jìn)入阻塞狀態(tài),暫停執(zhí)行指定的毫秒數(shù),然后自動(dòng)喚醒線程并繼續(xù)執(zhí)行。
需要注意的是,sleep() 方法可能會(huì)拋出 InterruptedException 異常。這種情況通常是由于線程被中斷或者被通知退出休眠狀態(tài)而引起的。因此,在調(diào)用 sleep() 方法時(shí),應(yīng)該捕獲并處理 InterruptedException 異常,以便在必要時(shí)及時(shí)中止線程的執(zhí)行。
下面是一個(gè)簡(jiǎn)單的示例代碼,演示了如何使用 sleep() 方法使線程進(jìn)入休眠狀態(tài):
public class SleepDemo implements Runnable {
public void run() {
System.out.println("線程開(kāi)始執(zhí)行");
try {
// 使線程進(jìn)入休眠狀態(tài)
Thread.sleep(5000);
} catch (InterruptedException e) {
System.out.println("線程被中斷");
return;
}
System.out.println("線程執(zhí)行完畢");
}
public static void main(String[] args) {
// 創(chuàng)建新線程
Thread thread = new Thread(new SleepDemo());
// 啟動(dòng)線程
thread.start();
// 在主線程中繼續(xù)執(zhí)行其他任務(wù)
System.out.println("主線程繼續(xù)執(zhí)行");
}
}
在上面的代碼中,我們定義了一個(gè) SleepDemo 類(lèi)實(shí)現(xiàn)了 Runnable 接口,并重寫(xiě)了 run() 方法。在 run() 方法中,我們調(diào)用了 sleep() 方法,使線程進(jìn)入休眠狀態(tài),并在休眠結(jié)束后輸出一條消息。
在 main() 方法中,我們創(chuàng)建了一個(gè)新線程,并調(diào)用 start() 方法啟動(dòng)該線程。在主線程中,我們輸出了一條消息表示繼續(xù)執(zhí)行其他任務(wù)。運(yùn)行程序后,可以看到主線程先輸出了一條消息,然后新線程進(jìn)入休眠狀態(tài),等待指定的時(shí)間后再輸出一條消息。