java的sleep和wait的區(qū)別 sleep與wait區(qū)別?
sleep與wait區(qū)別?線程睡眠和等待之間的區(qū)別:1。這兩個(gè)方法來自不同的類,即thread和object2。最重要的是sleep方法不會(huì)釋放鎖,而wait方法會(huì)釋放鎖,這樣其他線程就可以使用同步控
sleep與wait區(qū)別?
線程睡眠和等待之間的區(qū)別:1。這兩個(gè)方法來自不同的類,即thread和object2。最重要的是sleep方法不會(huì)釋放鎖,而wait方法會(huì)釋放鎖,這樣其他線程就可以使用同步控制塊或方法。三。Wait、notify和notifyAll只能在同步控制方法或同步控制塊中使用,而sleep可以在任何地方使用(使用范圍)。4Sleep必須捕獲異常,而wait、notify和notifyAll不需要捕獲異常。5Sleep是線程類的靜態(tài)方法。sleep的功能是讓線程在指定的時(shí)間睡眠,并在時(shí)間到達(dá)時(shí)恢復(fù)。也就是說,當(dāng)時(shí)間到達(dá)時(shí),sleep將恢復(fù)線程執(zhí)行。Wait是object的方法,也就是說,可以對任何對象調(diào)用Wait方法。調(diào)用wait方法將掛起調(diào)用方的線程,直到其他線程調(diào)用同一對象的notify方法。
Thread wait和sleep的區(qū)別?
睡眠和等待的區(qū)別如下:
1。這兩個(gè)方法來自不同的類,即thread和object
2。最重要的是sleep方法不會(huì)釋放鎖,而wait方法會(huì)釋放鎖,這樣其他線程就可以使用同步控制塊或方法。
3. Wait、notify和notifyAll只能在同步控制方法或同步控制塊中使用,而sleep可以在任何地方使用
synchronized(x){
x.notify()]//或Wait()
]4。Sleep必須捕獲異常,而wait、notify和notifyAll不需要捕獲異常
1。Sleep()允許線程暫停一段時(shí)間,它的控制范圍是由當(dāng)前線程決定的,也就是說,它是在線程中決定的。2Wait(),首先,由某個(gè)對象調(diào)用,該對象被理解為一個(gè)信使。當(dāng)這個(gè)人說“暫停!”在一個(gè)線程中,它是相同的這個(gè)目標(biāo)。等等(2) sleep方法不釋放鎖,而wait方法釋放鎖,以便其他線程可以使用同步控制塊或方法。3) Wait、notify和notifyAll只能在同步控制方法或同步控制塊中使用,而sleep可以在任何地方使用。Synchronized(x){x.notify()//or wait()}4)sleep必須捕獲異常,而wait、notify和notifyAll不需要捕獲異常
sleep()是一種在一段時(shí)間內(nèi)停止線程的方法。睡眠間隔過期后,線程可能不會(huì)立即恢復(fù)執(zhí)行。這是因?yàn)樵谀且豢?,其他線程可能正在運(yùn)行并且沒有計(jì)劃中止執(zhí)行,除非(a)“喚醒”線程具有更高的優(yōu)先級和(b)正在運(yùn)行的線程由于其他原因被阻塞。Wait()是線程交互的時(shí)間。如果線程對同步對象x進(jìn)行wait()調(diào)用,線程將暫停執(zhí)行,被調(diào)用對象將進(jìn)入等待狀態(tài),直到被喚醒或等待時(shí)間結(jié)束。