wait 和sleep 兩種方法的簡單總結

2021-10-09 03:30:44 字數 405 閱讀 9172

sleep方法可以讓執行緒進入waiting狀態,並且不占用cpu資源,但是不釋放鎖,直到規定時間後才執行,休眠期間如果被中斷,會跑出異常。

不同點

首先,wait方法是object類中的方法,而sleep方法是thread中的方法。

其次,對於方法而言,wait可以不用傳參,而sleep一定要傳參的

第三點,執行wait方法會釋放當前物件的鎖的,但是sleep並不會釋放鎖

第四點,wait方法是用在同步方法中。也就是說,要使用wait方法,就必須先獲得該物件(**塊,方法)的鎖

相同點

兩者都會讓執行緒進入阻塞狀態,其次兩者都可以相應中斷,也就是說在休眠過程中可以使用interrupt方法。

sleep()和wait 方法的區別

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

sleep和wait 方法的區別

最近學習多執行緒時了解到sleep和wait的區別,特記錄如下 sleep 和 wait 方法的區別 1.sleep是thread的方法,wait是object的方法 2.sleep不會釋放鎖,wait會釋放鎖,並且加入到等候佇列 3.sleep依賴鎖,而wait必須定義鎖 4.sleep不需要喚醒...

sleep和wait方法的區別

color red sleep和wait的區別 color color red 1 color 這兩個方法來自不同的類分別是,color blue sleep來自thread類,和wait來自object類 color sleep是thread的靜態類方法,誰呼叫的誰去睡覺,即使在a執行緒裡呼叫了b...