首頁  >  文章  >  Java  >  JAVA中sleep與wait區別

JAVA中sleep與wait區別

(*-*)浩
(*-*)浩原創
2019-12-26 11:53:482557瀏覽

JAVA中sleep與wait區別

wait()方法則是指當前執行緒讓自己暫時退讓出同步資源鎖,以便其他正在等待該資源的執行緒得到該資源進而執行,只有呼叫了notify()方法,之前呼叫wait()的執行緒才會解除wait狀態,可以去參與競爭同步資源鎖,進而執行。

sleep()方法可以在任何地方使用;wait()方法則只能在同步方法或同步區塊中使用;  (建議學習:java課程 )

sleep()是執行緒執行緒類別(Thread)的方法,呼叫會暫停此執行緒指定的時間,但監控仍然保持,不會釋放物件鎖,到時間自動恢復;

wait()是Object的方法,呼叫會放棄物件鎖,進入等待佇列,待呼叫notify()/notifyAll()喚醒指定的執行緒或所有執行緒,才會進入鎖定池,不再次取得物件鎖定才會進入運行狀態;

Java中執行緒的生命週期圖譜如下所示:

JAVA中sleep與wait區別

#

以上是JAVA中sleep與wait區別的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn