關於JAVA中sleep和wait

2021-08-14 08:22:25 字數 393 閱讀 9801

腦殼疼,今天傍晚看到sleep和wait時,頭腦中的概念也的確是模糊不清,然後又是一頓搜尋,明白了不少。

1.sleep 是屬於thread類,而wait是屬於object類的且必須和notify或notifyall 一起搭配使用。

sleep是執行緒控制自身的流程,而wait則屬於執行緒間通訊。該執行緒呼叫wait後將釋放該物件的鎖,等待指定的時間或者其他獲得該物件鎖的執行緒notify或notifyall,一旦再次獲得該物件鎖,將從呼叫wait處開始執行**。

2.呼叫sleep的執行緒不會釋放物件鎖,而呼叫wait的執行緒會釋放物件鎖。

3.獲得物件鎖的方法:

3.1 執行該該物件的同步例項方法。

3.2執行該物件對應類的同步靜態方法。

3.3執行該物件加同步鎖的同步塊。

java中wait 和 sleep 區別

1,wait可以指定時間也可以不指定。sleep必須指定時間。2,在同步中時,對cpu的執行權和鎖的處理不同。wait 釋放執行權,釋放鎖。sleep 釋放執行權,不釋放鎖。public class test1 class mythread extends thread override publi...

Java中wait和sleep區別

super類不同 對於sleep 方法是屬於thread類,而wait 方法,則是屬於object類。是否釋放執行緒鎖 在呼叫sleep 方法的過程中,執行緒不會釋放物件鎖。而當呼叫wait 方法的時候,執行緒會放棄物件鎖,進入等待此物件的等待鎖定池,只有針對此物件呼叫notify 方法後本執行緒才...

java中sleep 和wait 的區別

sleep方法是thread類中定義的方法,而wait方法是object類中定義的方法。每個物件都有乙個鎖來控制同步訪問,synchronized關鍵字可以和物件的鎖互動,來實現同步方法或同步塊。執行sleep 方法的執行緒會主動讓出cpu 然後cpu就可以去執行其他任務 在sleep指定時間後cp...