Java 是一種廣泛應(yīng)用于軟件開發(fā)的編程語(yǔ)言,擁有豐富的編程功能和特定的函數(shù)庫(kù)。在 Java 中,sleep() 和 wait() 是兩個(gè)常用的函數(shù)方法,用于控制線程的執(zhí)行過程。這兩個(gè)方法的主要作用是讓線程停止執(zhí)行一段時(shí)間,但有一些不同之處。
public static void sleep(long millis) throws InterruptedException
Java 的 sleep() 方法讓線程從活動(dòng)狀態(tài)中退出一定的時(shí)間(以毫秒為單位),這樣其他線程可以繼續(xù)執(zhí)行。sleep() 方法是讓當(dāng)前線程進(jìn)入休眠狀態(tài)。
public final void wait() throws InterruptedException public final void wait(long timeout) throws InterruptedException
Java 的 wait() 方法是讓當(dāng)前線程進(jìn)入等待狀態(tài),直到其他線程執(zhí)行 notify() 或 notifyAll() 方法,或者等待時(shí)間已到。wait() 方法可以指定等待時(shí)間,當(dāng)?shù)却龝r(shí)間到時(shí),線程會(huì)自動(dòng)退出等待狀態(tài)。wait() 方法必須在同步代碼塊中使用。
因此, sleep() 和 wait() 方法不同之處在于:
- sleep() 方法是線程暫停執(zhí)行一段時(shí)間,而 wait() 方法是在線程上釋放鎖并等待喚醒。
- sleep() 方法可以在任何時(shí)候調(diào)用,而 wait() 方法必須在同步代碼塊內(nèi)使用。