java的sleep和wait的區(qū)別 sleep與wait區(qū)別?
sleep與wait區(qū)別?線程睡眠和等待之間的區(qū)別:1。這兩個(gè)方法來(lái)自不同的類(lèi),即thread和object2。最重要的是sleep方法不會(huì)釋放鎖,而wait方法會(huì)釋放鎖,這樣其他線程就可以使用同步控
sleep與wait區(qū)別?
線程睡眠和等待之間的區(qū)別:1。這兩個(gè)方法來(lái)自不同的類(lèi),即thread和object2。最重要的是sleep方法不會(huì)釋放鎖,而wait方法會(huì)釋放鎖,這樣其他線程就可以使用同步控制塊或方法。三。Wait、notify和notifyAll只能在同步控制方法或同步控制塊中使用,而sleep可以在任何地方使用(使用范圍)。4Sleep必須捕獲異常,而wait、notify和notifyAll不需要捕獲異常。5Sleep是線程類(lèi)的靜態(tài)方法。sleep的功能是讓線程在指定的時(shí)間睡眠,并在時(shí)間到達(dá)時(shí)恢復(fù)。也就是說(shuō),當(dāng)時(shí)間到達(dá)時(shí),sleep將恢復(fù)線程執(zhí)行。Wait是object的方法,也就是說(shuō),可以對(duì)任何對(duì)象調(diào)用Wait方法。調(diào)用wait方法將掛起調(diào)用方的線程,直到其他線程調(diào)用同一對(duì)象的notify方法。
Thread wait和sleep的區(qū)別?
睡眠和等待的區(qū)別如下:
1。這兩個(gè)方法來(lái)自不同的類(lèi),即thread和object
2。最重要的是sleep方法不會(huì)釋放鎖,而wait方法會(huì)釋放鎖,這樣其他線程就可以使用同步控制塊或方法。
3. Wait、notify和notifyAll只能在同步控制方法或同步控制塊中使用,而sleep可以在任何地方使用
synchronized(x){
x.notify()]//或Wait()
]4。Sleep必須捕獲異常,而wait、notify和notifyAll不需要捕獲異常
關(guān)于Sleep()和wait(),下面的錯(cuò)誤是()a Sleep是線程類(lèi)的方法,wait是對(duì)象類(lèi)的方法;B.Sleep不釋放對(duì)象鎖,wait放棄對(duì)象鎖;C.Sleep暫停線程,但監(jiān)視狀態(tài)保持不變,結(jié)束后自動(dòng)恢復(fù);D.等待后,進(jìn)入等待鎖池,只有對(duì)對(duì)象發(fā)出notify方法后,才獲得對(duì)象鎖,進(jìn)入運(yùn)行狀態(tài)。答:dsleep是thread類(lèi)的一個(gè)方法,它使線程在指定的時(shí)間內(nèi)暫停執(zhí)行,給其他線程執(zhí)行的機(jī)會(huì),但監(jiān)視狀態(tài)保持不變,并在該時(shí)間后自動(dòng)恢復(fù)。調(diào)用sleep不會(huì)釋放對(duì)象鎖。只有使用此方法鎖定對(duì)象時(shí),線程才會(huì)進(jìn)入鎖定池狀態(tài)。