wait()方法則是指當前執行緒讓自己暫時退讓出同步資源鎖,以便其他正在等待該資源的執行緒得到該資源進而執行,只有呼叫了notify()方法,之前呼叫wait()的執行緒才會解除wait狀態,可以去參與競爭同步資源鎖,進而執行。
sleep()方法可以在任何地方使用;wait()方法則只能在同步方法或同步區塊中使用; (建議學習:java課程 )
sleep()是執行緒執行緒類別(Thread)的方法,呼叫會暫停此執行緒指定的時間,但監控仍然保持,不會釋放物件鎖,到時間自動恢復;
wait()是Object的方法,呼叫會放棄物件鎖,進入等待佇列,待呼叫notify()/notifyAll()喚醒指定的執行緒或所有執行緒,才會進入鎖定池,不再次取得物件鎖定才會進入運行狀態;
Java中執行緒的生命週期圖譜如下所示:
#以上是JAVA中sleep與wait區別的詳細內容。更多資訊請關注PHP中文網其他相關文章!