java基礎 sleep與wait的區別

2021-09-01 09:18:03 字數 346 閱讀 2710

(1)wait()方法屬於object類,sleep()屬於thread類。

(2)sleep()方法導致了執行緒暫停執行指定的時間,讓出cpu該其他執行緒,但是他的監控狀態依然保持者,當指定的時間到了又會自動恢復執行狀態,在呼叫sleep()方法的過程中,執行緒不會釋放物件鎖。而當呼叫wait()方法的時候,執行緒會放棄物件鎖,進入等待此物件的等待鎖定池,只有針對此物件呼叫notify()方法後本執行緒才進入物件鎖定池準備。

(3)sleep必須捕獲異常,而wait,notify和notifyall不需要捕獲異常。

(4)wait,notify和notifyall只能在同步控制方法或者同步控制塊裡面使用,而sleep可以在任何地方使用。

Java中sleep 與wait 區別

1 每個物件都有乙個鎖來控制同步訪問,synchronized關鍵字可以和物件的鎖互動,來實現同步方法或同步塊。sleep 方法正在執行的執行緒主動讓出cpu 然後cpu就可以去執行其他任務 在sleep指定時間後cpu再回到該執行緒繼續往下執行 注意 sleep方法只讓出了cpu,而並不會釋放同步...

Java 中sleep與wait的區別

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

java執行緒wait與sleep的區別

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