java中wait 和 sleep 區別

2021-07-06 01:28:26 字數 878 閱讀 6349

1,wait可以指定時間也可以不指定。

sleep必須指定時間。

2,在同步中時,對cpu的執行權和鎖的處理不同。

wait:釋放執行權,釋放鎖。

sleep:釋放執行權,不釋放鎖。

public class test1 

}class mythread extends thread

@override

public void run() catch (interruptedexception e)

} }}

她的輸出結果永遠都是成雙成對出現;

比如:執行緒2

執行緒2執行緒1

執行緒1;

而永遠不會出現

執行緒1執行緒2。。。

因為兩個執行緒用的是同乙個鎖,

而sleep是不會釋放鎖的;

下面來看第二個例子

public class test1 

}class mythread extends thread

@override

public void run() catch (interruptedexception e)

system.out.println(name);

} }}class mythread1 extends thread

@override

public void run() catch (interruptedexception e)

system.out.println(name);

} }}

這與第乙個例子正好相反,她永遠都不會出現成雙成對的情況

這是由於,wait會釋放鎖

Java中wait和sleep區別

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

關於JAVA中sleep和wait

腦殼疼,今天傍晚看到sleep和wait時,頭腦中的概念也的確是模糊不清,然後又是一頓搜尋,明白了不少。1.sleep 是屬於thread類,而wait是屬於object類的且必須和notify或notifyall 一起搭配使用。sleep是執行緒控制自身的流程,而wait則屬於執行緒間通訊。該執行...

java中sleep 和wait 的區別

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