簡述sleep 和wait 的區別

2021-10-25 22:16:13 字數 436 閱讀 1998

sleep()方法和wait()方法存在很多區別,簡述一兩點很簡單,但是要全部講好要好好記一下才行的。下面簡述一下兩個方法的主要區別。

1.sleep()方法是在休眠指定的時間後會重新進入可執行狀態(runnable),wait()方法是會進入阻塞狀態,需要通過**如notify(),notifyall()來將其喚醒才能重新進入可執行狀態(runnable)

2.sleep()方法在休眠時不會放開物件的互斥鎖,而wait()方法在阻塞時會放開互斥鎖

3.sleep()方法來自thread類,wait()方法是來自object類的方法

4.使用範圍有不同,sleep()方法可以在任意地方使用,而諸如wait()、notify()、notifyall()等方法只能用在同步**塊或同步方法裡

5.sleep()必須捕獲異常,而wait()無需捕獲異常

歡迎各位批評指正。

sleep和wait的區別

關鍵字 sleep wait 1 這兩個方法來自不同的類分別是thread和object 2 最主要是sleep方法沒有釋放鎖,而wait方法釋放了鎖,使得其他執行緒可以使用同步控制塊或者方法。3 wait,notify和notifyall只能在同步控制方法或者同步控制塊裡面使用,而sleep可以在...

sleep 和 wait的區別

1 這兩個方法來自不同的類分別是,sleep來自thread類,和wait來自object類。sleep是thread的靜態類方法,誰呼叫的誰去睡覺,即使在a執行緒裡呼叫了b的sleep方法,實際上還是a去睡覺,要讓b執行緒睡覺要在b的 中呼叫sleep。2 最主要是sleep方法沒有釋放鎖,而wa...

sleep和wait的區別

1 這兩個方法來自不同的類分別是,sleep來自thread類,和wait來自object類。sleep是thread的靜態類方法,誰呼叫的誰去睡覺,即使在a執行緒裡呼叫了b的sleep方法,實際上還是a去睡覺,要讓b執行緒睡覺要在b的 中呼叫sleep。2 最主要是sleep方法沒有釋放鎖,而wa...