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...